1
如何根據某些共享特徵使用窗口函數或類似的方法來爲每個組或行的分區編號?如何在PostgreSQL中爲每個組編號
例如:
我有字母順序排列的,我想組名稱的列表,並確定使用描述每個組內,它們所屬的組和位置標識。
-------------------------------------------
| outer_id | inner_id | src_id | name |
|----------|----------|--------|----------|
| 1 | 1 | 88129 | albert |
| 1 | 2 | 88130 | albrecht |
| 1 | 3 | 88131 | allan |
| 2 | 1 | 88132 | barnaby |
| 2 | 2 | 88133 | barry |
| 2 | 3 | 88134 | bart |
-------------------------------------------
我可以inner_id
,src_id
和name
使用類似於下面的查詢實現:
WITH cte (src_id, name) AS (
VALUES
(88129, 'albert'),
(88130, 'albrecht'),
(88131, 'allan'),
(88132, 'barnaby'),
(88133, 'barry'),
(88134, 'bart')
)
SELECT row_number() OVER (partition by left(name, 1) ORDER BY name DESC) AS inner_id, src_id, name
FROM cte;
我如何去增加一個outer_id
柱如圖所示,以表示每個窗口(或組) ?
優秀 - 謝謝你戈登,同時還爲例子。 – atdfairfax