clickhouse计算前后两点间经纬度距离

问题

计算如图所示前后两点经纬度的距离?

方法

1、用开窗函数将如图所示数据下移一行

sql 复制代码
select
	longitude lon1,
	latitude lat1,
	min(longitude) over(
	order by time1 asc rows between 1 PRECEDING and 1 PRECEDING) lon2,
	min(latitude) over(
	order by time1 asc rows between 1 PRECEDING and 1 PRECEDING) lat2
from
	table1

完整sql

sql 复制代码
select
	time1 ,
	lon1,
	lat1,
	lon2,
	lat2,
	greatCircleDistance(a.lon1,
	a.lat1,
	a.lon2,
	a.lat2) distance
from
	(
	select
		time1,
		longitude lon1,
		latitude lat1,
		min(longitude) over(
		order by time1 asc rows between 1 PRECEDING and 1 PRECEDING) lon2,
		min(latitude) over(
		order by time1 asc rows between 1 PRECEDING and 1 PRECEDING) lat2
	from
		table1

3、简化版sql

sql 复制代码
select
	time1 ,
	longitude,
	latitude,
	greatCircleDistance(longitude , latitude ,
	min(longitude) over(
	order by time1 asc rows between 1 PRECEDING and 1 PRECEDING),
	min(latitude) over(
	order by time1 asc rows between 1 PRECEDING and 1 PRECEDING)) distance
from
	table1
相关推荐
麦兜和小可的舅舅2 天前
ClickHouse 一次Schema修改造成的Merge阻塞问题的分析和解决过程
clickhouse
bigdata-rookie5 天前
StarRocks(2.5.1)vs Clickhouse(21.7.3.14)集群 SSB 性能测试
clickhouse
CTO Plus技术服务中5 天前
ClickHouse原理解析与应用实践教程
clickhouse
zhangyifang_0097 天前
ClickHouse查询报错:Code: 62. DB::Exception: Max query size exceeded:
数据库·clickhouse
HideInTime7 天前
Clickhouse进阶分组复合排序查询
clickhouse
memgLIFE8 天前
clickhouse
clickhouse
Arbori_262159 天前
clickhouse 实现mysql GROUP_CONCAT() 函数
数据库·mysql·clickhouse
斯普信专业组10 天前
Nomad组件部署clickhouse-job
clickhouse·nomad
麦兜和小可的舅舅10 天前
ClickHouse Drop Table On Cluster 故障分析和原理解析
clickhouse·kafka
重生之绝世牛码12 天前
Linux软件安装 —— ClickHouse单节点安装(rpm安装、tar安装两种安装方式)
大数据·linux·运维·数据库·clickhouse·软件安装·clickhouse单节点