[英]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.