怎么使用SQL实现车流量的计算
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要为大家展示了"怎么使用SQL实现车流量的计算",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"怎么使用SQL实现车流量的计算"这篇文章吧。卡口转换
千家信息网最后更新 2026年11月02日怎么使用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安全错误
数据库的锁怎样保障安全
中智农互联网科技
中关村互联网 科技集团
互联网科技资迅
互联网医疗科技
互联网科技公司电话
互联网与新科技
壕鑫互联网络科技
互联网科技小额贷款
互联网高科技股票
撒么互联网科技公司
汽车互联网创新科技园
贵州叶脉互联网科技有限公司所属行业
互联网科技公司实习生
互联网科技和信息
为客找房互联网科技公司怎么样
工业互联网山东科技大学
元气玛特互联网科技公司是外包吗
互联网科技包装股
新氧科技和美国互联网有关系吗
恒生互联网科技趋势
互联网科技垄断
易互联网科技有限公司
美国互联网科技
友谊互联网络科技
中正互联网科技招聘
承德科技产业互联网发展
特约风豹互联网科技为什么扣费
烟台灵鸽互联网科技有限公司
互联网科技融合创新
互联网科技快速发展优美句子