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 天前
flink+clinkhouse安装部署
大数据·clickhouse·flink
Sais_Z5 天前
ClickHouse的学习与了解
数据库·clickhouse
风中凌乱8 天前
ClickHouse-Backup的安装与部署
clickhouse
风中凌乱8 天前
clickhouse集群的安装与部署
clickhouse
白眼黑刺猬8 天前
ClickHouse从入门到企业级实战全解析课程简介
clickhouse
chenglin01611 天前
ClickHouse、Doris、OpenSearch、Splunk、Solr系统化分析
clickhouse·solr·lucene
慕y27411 天前
Java学习第一百一十七部分——ClickHouse
java·学习·clickhouse
zuozewei17 天前
随笔之 ClickHouse 列式分析数据库安装注意事项及基准测试
数据库·clickhouse
牛牛木有坏心眼(大数据进阶)18 天前
linux系统离线环境安装clickhouse客户端
linux·clickhouse
许心月18 天前
Clickhouse#表记录转换为insert语句
clickhouse