簡體   English   中英

SQL 多列分組

[英]SQL Group by on multiple columns

我的輸入是:

    a b c 
    -------
    A 5 3
    A 4 2
    B 3 1
    B 5 3

我想得到在bc中具有相同值的所有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM