繁体   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