【发布时间】:2017-10-11 14:19:47
【问题描述】:
如下表table1
+--------+-------+-------+------------+-------+
| flight | orig | dest | passenger | bags |
+--------+-------+-------+------------+-------+
| 1111 | sfo | chi | david | 3 |
| 1112 | sfo | dal | david | 7 |
| 1112 | sfo | dal | kim | 10|
| 1113 | lax | san | ameera | 5 |
| 1114 | lax | lfr | tim | 6 |
| 1114 | lax | lfr | jake | 8 |
+--------+-------+-------+------------+-------+
我正在通过orig 聚合表格,如下所示
select
orig
, count(*) flight_cnt
, count(distinct passenger) as pass_cnt
, percentile_cont(0.5) within group ( order by bags ASC) as bag_cnt_med
from table1
group by orig
我需要为每个orig 组添加名称最长的passenger (length(passenger)) - 我该怎么做?
预期输出
+------+-------------+-----------+---------------+-------------------+
| orig | flight_cnt | pass_cnt | bags_cnt_med | pass_max_len_name |
+------+-------------+-----------+---------------+-------------------+
| sfo | 3 | 2 | 7 | david |
| lax | 3 | 3 | 6 | ameera |
+------+-------------+-----------+---------------+-------------------+
【问题讨论】:
-
发布你想要的输出...问题不清楚
-
@mohan111 添加
-
如果两个名字的长度相同?
-
顺便说一句,这是
length()或char_length(),而不是len()
标签: sql postgresql aggregate greatest-n-per-group