有沒有一種方法來命名分組集?對於每個分組集(顯式定義或根據https://www.postgresql.org/docs/devel/static/queries-table-expressions.html按彙總或多維數據集生成),我想以某種方式在結果列中指定一個名稱。這裏是什麼,我試圖做一個醜陋的即時演示,名稱只是被分組列的列表:postgresql,命名爲分組集?
select *, array_to_string(array_remove(array[case when "A" is null then null else 'A' end,
case when "B" is null then null else 'B' end,
case when "C" is null then null else 'C' end
],null),',') as grouping_set
from (values ('a','b','c'),
('aa','bb','cc'),
('aaa',null,'ccc')) as foo("A","B","C")
group by rollup(1,2,3);
A | B | C | grouping_set
-----+----+-----+--------------
a | b | c | A,B,C
a | b | | A,B
a | | | A
aa | bb | cc | A,B,C
aa | bb | | A,B
aa | | | A
aaa | | ccc | A,C <--------- should be A,B,C
aaa | | | A <--------- should be A,B
aaa | | | A
| | |
但是請注意,有兩行的問題,用箭頭標記:這兩者都包括分組中的列B,但不包含在名稱中,因爲這些組中的B爲空。
任何想法或更好的方法來解決這個問題?
Laurenz的回答在幾秒鐘內做出它變成你面前,所以我選擇了它,但是這是偉大的,有鏈接的文檔是有幫助的,因爲「分組」是不是谷歌一件容易的事情。 – Sigfried