gpt4 book ai didi

SQL:如何选择组中同一行的两个字段?

转载 作者:行者123 更新时间:2023-11-29 13:17:36 26 4
gpt4 key购买 nike

我正在使用 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_namelast_name可能不在同一行.显然,MIN(最小值)在这里不是正确的聚合器函数。

我的问题:如何强制 first_namelast_name 来自同一行

最佳答案

您可以使用row_number 窗口函数来查询每组一行:

SELECT street, first_name, last_name
FROM (SELECT street, first_name, last_name,
ROW_NUMBER() OVER (PARTITION BY street ORDER BY first_name) AS rn
FROM mytable) t
WHERE rn = 1

关于SQL:如何选择组中同一行的两个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46716355/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com