【发布时间】:2017-10-12 18:15:44
【问题描述】:
我使用的是 Postgres 9.6.*
我有这个:
street | first_name | last_name
1st | james | bond
1st | mr | q
1st | ms | m
2nd | man | with_golden_gun
我想获取不同地址的列表以及每个地址的第一组“first_name”和“last_name”。
我想要的输出:
street | first_name | last_name
1st | james | bond
2nd | man | with_golden_gun
我按street 分组,并尝试MIN(first_name) 和MIN(last_name) -- 然而 -- 使用 MIN 时,每组独特的街道都有一些案例,我可以得到看似随机的 混合搭配 first_name 和 last_name 可能不在同一行。显然,MIN(最小值)在这里不是正确的聚合函数。
我的问题:如何强制 first_name 和 last_name 来自同一行?
【问题讨论】:
-
你在用什么rdbms?
-
我正在使用 postgres
-
什么是“第一组'first_name'和'last_name'”?
-
就我而言,任何两个值的行都相同的集合。我只是不想像“james”+“with_golden_gun”那样混搭作为一组名字和姓氏
-
我认为@less 是在询问排序的定义——它是按字母顺序排列的吗?
标签: sql postgresql select greatest-n-per-group postgresql-9.6