怎么使用SQL实现车流量的计算
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,这篇文章主要为大家展示了"怎么使用SQL实现车流量的计算",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"怎么使用SQL实现车流量的计算"这篇文章吧。卡口转换
千家信息网最后更新 2025年02月06日怎么使用SQL实现车流量的计算
这篇文章主要为大家展示了"怎么使用SQL实现车流量的计算",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"怎么使用SQL实现车流量的计算"这篇文章吧。
卡口转换率
将数据导入hive,通过SparkSql编写sql,实现不同业务的数据计算实现,主要讲述车辆卡口转换率,卡口转化率:主要计算不同卡口下车辆之间的流向,求出之间的转换率。
1、查出每个地区下每个路段下的车流量
select car, monitor_id, action_time, ROW_NUMBER () OVER (PARTITION by carORDER by action_time) as n1FROM traffic.hive_flow_action
此结果做为表1,方便后面错位连接使用
2、通过错位连接获取每辆车的行车记录
通过表1的结果,与自身进行错位链接,并以车牌为分区,拼接经过卡口的过程
(select t1.car, t1.monitor_id, concat(t1.monitor_id, "->", t2.monitor_id) as wayfrom ( select car, monitor_id, action_time, ROW_NUMBER () OVER (PARTITION by car ORDER by action_time) as n1 FROM traffic.hive_flow_action) t1left join ( select car, monitor_id, action_time, ROW_NUMBER () OVER (PARTITION by car ORDER by action_time) as n1 FROM traffic.hive_flow_action) t2 on t1.car = t2.car and t1.n1 = t2.n1-1where t2.action_time is not null)
获取到每辆车的一个行车记录,经过的卡口
3、获取行车过程中的车辆数
获取卡口1~卡口2,…等的车辆数有哪些,即拿上面的行车记录字段进行分区在进行统计
(select s1.way, COUNT(1) sumCarfrom --行车过程(select t1.car, t1.monitor_id, concat(t1.monitor_id, "->", t2.monitor_id) as way from ( select car, monitor_id, action_time, ROW_NUMBER () OVER (PARTITION by car ORDER by action_time) as n1 FROM traffic.hive_flow_action) t1 left join ( select car, monitor_id, action_time, ROW_NUMBER () OVER (PARTITION by car ORDER by action_time) as n1 FROM traffic.hive_flow_action) t2 on t1.car = t2.car and t1.n1 = t2.n1-1 where t2.action_time is not null)s1group by way)
4、获取每个卡口的总车辆数
获取每个卡口最初的车辆数,方便后面拿行车轨迹车辆数/总车辆数,得出卡口之间的转换率
select monitor_id , COUNT(1) sumallfrom traffic.hive_flow_actiongroup by monitor_id
5、求出卡口之间的转换率
select s2.way, s2.sumCar / s3.sumall zhlfrom ( select s1.way, COUNT(1) sumCar from --行车过程( select t1.car, t1.monitor_id, concat(t1.monitor_id, "->", t2.monitor_id) as way from ( select car, monitor_id, action_time, ROW_NUMBER () OVER (PARTITION by car ORDER by action_time) as n1 FROM traffic.hive_flow_action) t1 left join ( select car, monitor_id, action_time, ROW_NUMBER () OVER (PARTITION by car ORDER by action_time) as n1 FROM traffic.hive_flow_action) t2 on t1.car = t2.car and t1.n1 = t2.n1-1 where t2.action_time is not null)s1 group by way)s2left join --每个卡口总车数( select monitor_id , COUNT(1) sumall from traffic.hive_flow_action group by monitor_id) s3 on split(s2.way, "->")[0]= s3.monitor_id
以上是"怎么使用SQL实现车流量的计算"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
卡口
车辆
行车
转换率
车流
车流量
之间
过程
内容
篇文章
不同
数据
结果
求出
学习
帮助
业务
地区
字段
易懂
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
阿里云数据库大表添加索引
青岛erp软件开发机构
超市商品数据库的用户需求
pb9中如何连接数据库
人脸识别系统数据库在哪
48位存储服务器参数
微信服务器相关a股
豪门足球风云手游数据库
数据库数据空间大小查询
软件开发软文范文
非洲经贸数据库
海量软件开发性价比
软件开发专科能上北上广吗
联想服务器测试工程师
支付收银软件开发
服务器管理器添加角色和功能失败
电影戒色软件开发
acdsee10数据库
鞍山的软件开发的发展趋势
青浦区提供网络技术推荐咨询
鹤壁网络安全宣传片
华为网络技术大赛比什么
耒阳市互联网科技
虚拟机网络安全教程
康扬网络技术有限公司
泰州电信软件开发中心
2016链家房产大数据库
tp5 读取数据库
doremi服务器
北京软件开发者网站有哪些