[英]SQL Group by on multiple columns
我的輸入是:
a b c
-------
A 5 3
A 4 2
B 3 1
B 5 3
我想得到在b
和c
中具有相同值的所有a
值,所以 output 應該是:
{A,B} 5 3
我正在使用group by
,但我沒有實現我的目標。
在標准 SQL 中,這看起來像:
select b, c, listagg(a, ',') within group (order by a)
from t
group by b, c;
並非所有數據庫都支持listagg()
,但大多數都有連接字符串的方法。
在 Hive 中,您將使用collect_list()
或collect_set()
:
select b, c, collect_list(a, ',')
from t
group by b, c;
您可以將數組轉換回字符串,但我建議將其保留為數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.