sql - 选择 SQL (Redshift) 分组中的第一行数值
问题描述
我有一个以下结构的表:
ID latitude longtitude other..columns
A12 54.55 -43.26 .
A21 57.00 -43.25 .
V51 54.55 -44.25 .
V51 54.50 -43.25 .
A12 55.11 -43.15 .
B43 50.16 -43.25 .
我ID
按平均值和最小值/最大值对表进行分组并聚合其他列。然而,当涉及到纬度/经度时,我想通过任何聚合(最小值或最大值,无关紧要)选择纬度,并选择其等效经度(例如A12
-> 54.55
& -43.26
),而不是聚合为平均值或最小值/最大分开。
是否有一种智能且简单的方法来构建此查询?
当前查询类似于:
select
avg(other_columns),
min(latitude),
?(longtitude)
from table
group by ID;
编辑:在评论后澄清要求。
解决方案
您总是可以从纬度和经度中制作一对,例如通过转换为字符串并将它们连接起来(我相信 Redshift 不支持结构,否则它会是更好的选择):
cast(lat as string) || '&' || cast(lon as string)
然后选择例如这对的最小值,最后使用 SPLIT_PART 函数将其拆分回来。
推荐阅读
- pandas - 什么是 OSError:[Errno 95] Colab 上的 pandas to_csv 不支持操作?
- spring-boot - Spring Security不同版本中SimpleGrantedAuthority问题的序列化和反序列化
- java - 带有 pagerView 的毕加索滑块。获取可绘制的本地图像。以及如何自动更改图像
- python - 如何在模板中获取“price_retail”字段值?
- user-interface - Flutter ListView.builder - 如何以编程方式跳转到某个索引
- php - 用于每天降低数据库值的后台 PHP 脚本
- android - 如何为导航抽屉的每个项目添加框架或分隔符?
- ibm-cloud - 为网站和 Facebook Messenger 创建 Watson Assistant 聊天机器人
- java - 当应用程序在 Android api 28(饼图)中处于前台或后台时,单击通知“启动活动”时的附加信息为 null
- javascript - 如何以现代角度发出从孙子到祖父母的事件?