使用SQL实现车流量的计算的示例代码


Posted in SQL Server onFebruary 28, 2022

卡口转换率

将数据导入hive,通过SparkSql编写sql,实现不同业务的数据计算实现,主要讲述车辆卡口转换率,卡口转化率:主要计算不同卡口下车辆之间的流向,求出之间的转换率。

使用SQL实现车流量的计算的示例代码

1、查出每个地区下每个路段下的车流量

select
	car,
	monitor_id,
	action_time,
	ROW_NUMBER () OVER (PARTITION by car
ORDER by
	action_time) as n1
FROM
	traffic.hive_flow_action

此结果做为表1,方便后面错位连接使用

使用SQL实现车流量的计算的示例代码

2、通过错位连接获取每辆车的行车记录

通过表1的结果,与自身进行错位链接,并以车牌为分区,拼接经过卡口的过程

(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)

使用SQL实现车流量的计算的示例代码

获取到每辆车的一个行车记录,经过的卡口

3、获取行车过程中的车辆数

获取卡口1~卡口2,…等的车辆数有哪些,即拿上面的行车记录字段进行分区在进行统计

(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)

使用SQL实现车流量的计算的示例代码

4、获取每个卡口的总车辆数

获取每个卡口最初的车辆数,方便后面拿行车轨迹车辆数/总车辆数,得出卡口之间的转换率

select
	monitor_id ,
	COUNT(1) sumall
from
	traffic.hive_flow_action
group by
	monitor_id

使用SQL实现车流量的计算的示例代码

5、求出卡口之间的转换率

select
	s2.way,
	s2.sumCar / s3.sumall zhl
from
	(
	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)s2
left 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实现车流量的计算的示例代码

 到此这篇关于使用SQL实现车流量的计算的示例代码的文章就介绍到这了,更多相关SQL 车流量内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

SQL Server 相关文章推荐
2021-4-3课程——SQL Server查询【2】
Apr 05 SQL Server
sqlserver2017共享功能目录路径不可改的解决方法
Apr 16 SQL Server
解决sql server 数据库,sa用户被锁定的问题
Jun 11 SQL Server
SQLServer之常用函数总结详解
Aug 30 SQL Server
Windows环境下实现批量执行Sql文件
Oct 05 SQL Server
SQL SERVER实现连接与合并查询
Feb 24 SQL Server
SQL SERVER存储过程用法详解
Feb 24 SQL Server
Sql Server之数据类型详解
Feb 28 SQL Server
使用SQL实现车流量的计算的示例代码
Feb 28 SQL Server
MySQL 中如何归档数据的实现方法
Mar 16 SQL Server
SQL Server 中的事务介绍
May 20 SQL Server
SQL使用复合索引实现数据库查询的优化
May 25 SQL Server
Sql Server之数据类型详解
Feb 28 #SQL Server
sql server 累计求和实现代码
Feb 28 #SQL Server
SQL SERVER触发器详解
Feb 24 #SQL Server
SQL SERVER存储过程用法详解
Feb 24 #SQL Server
SQL SERVER实现连接与合并查询
Feb 24 #SQL Server
SQLServer中exists和except用法介绍
SQL Server2019数据库备份与还原脚本,数据库可批量备份
You might like
php session 预定义数组
2009/03/16 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
2010/06/21 Javascript
菜鸟学习JavaScript小实验之函数引用
2010/11/17 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
JavaScript中如何通过arguments对象实现对象的重载
2014/05/12 Javascript
仿JQuery输写高效JSLite代码的一些技巧
2015/01/13 Javascript
js实现n秒倒计时后才可以点击的效果
2015/12/20 Javascript
BootstrapValidator不触发校验的实现代码
2016/09/28 Javascript
jQuery如何跳转到另一个网页 就这么简单
2016/12/28 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
vue2 全局变量的设置方法
2018/03/09 Javascript
vue在线动态切换主题色方案
2020/03/26 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
python创建和删除目录的方法
2015/04/29 Python
Python进阶_关于命名空间与作用域(详解)
2017/05/29 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
中外合拍动画首获奥斯卡提名,“上海出品”《飞奔去月球》能否拿下最终大奖?
2021/03/16 国漫
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
吉力贝官方网站:Jelly Belly
2019/03/11 全球购物
加大码胸罩、内裤和服装:Just My Size
2019/03/21 全球购物
中医药大学毕业生自荐信
2013/11/08 职场文书
业务部经理岗位职责
2014/01/04 职场文书
奥巴马的演讲稿
2014/05/15 职场文书
食品质检员岗位职责
2015/04/08 职场文书
工作失职检讨书范文
2015/05/05 职场文书
导游词之河北邯郸
2019/09/12 职场文书
python OpenCV学习笔记
2021/03/31 Python
讲解MySQL增删改操作
2022/05/06 MySQL
postgresql如何找到表中重复数据的行并删除
2023/05/08 MySQL