Sql 如何收集按column1分组的每个组中column2的所有不同值?
这给Sql 如何收集按column1分组的每个组中column2的所有不同值?,sql,select,group-by,distinct,Sql,Select,Group By,Distinct,这给 SELECT DISTINCT property1, property2, SUM(property3) FROM t GROUP BY property1; 但是我想要 p11 p211 sum(p311, p312, ...) p12 p221 sum(p321, p322, ...) 或者某个东西包含了同等的信息。如何做到这一点?MySQL提供了一个GROUP\u CONCAT函数,它完全满足您的需求: p11 (p211, p212, ...) sum(p311, p312,
SELECT DISTINCT property1, property2, SUM(property3) FROM t GROUP BY property1;
但是我想要
p11 p211 sum(p311, p312, ...)
p12 p221 sum(p321, p322, ...)
或者某个东西包含了同等的信息。如何做到这一点?MySQL提供了一个
GROUP\u CONCAT
函数,它完全满足您的需求:
p11 (p211, p212, ...) sum(p311, p312, ...)
p12 (p221, p222, ...) sum(p321, p322, ...)
我不知道其他RDBMS中的等价物是什么。在Oracle中也可以这样做吗?
GROUP\u CONCAT
似乎会在某个点截断,即,如果组中的行数超过一定数量,并且/或者结果列值的长度超过某个阈值,则会丢弃其余的行。你知道吗?From:“在运行时更改group_concat_max_len值的语法如下,其中val是一个无符号整数:”SET[GLOBAL | SESSION]group_concat_max_len=val代码>
SELECT property1, GROUP_CONCAT(property2), SUM(property3) FROM t GROUP BY property1;