gpt4 book ai didi

postgresql - 如何将数字添加到postgresql group by子句中的分组行

转载 作者:行者123 更新时间:2023-11-29 11:14:25 25 4
gpt4 key购买 nike

我有一个 PostgreSQL 表,在文本列中包含重复值。它看起来像这样:

gid, capt
1, foo
2, foo
3, bar
4, bar
5, bar
6, buz
7, buz

我需要为组中的每个值添加一个具有不同数字的列,因此我的表应该如下所示:

gid, capt, rnum
1, foo, 1
2, foo, 2
3, bar, 1
4, bar, 2
5, bar, 3
6, buz, 1
7, buz, 2

它是每个组内的一种行号,总是从 1 开始。谁能给我提供一个合适的 SELECT 语句?

最佳答案

this question and its answers 的帮助下:

SELECT gid, capt, row_number() OVER (PARTITION BY capt ORDER BY gid) AS rnum
FROM your_table_here ORDER BY gid;

行号 window function提供计数。

OVER 子句中的PARTITION BY 语句告诉数据库在每次更改capt 时重新开始编号。 OVER 子句中的 ORDER BY 告诉数据库与 gid 列一起计数。

关于postgresql - 如何将数字添加到postgresql group by子句中的分组行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30491825/

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