Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何收集按column1分组的每个组中column2的所有不同值?_Sql_Select_Group By_Distinct - Fatal编程技术网

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;