Group_concat() 削减一些行

Group_concat() cuts some rows

我的查询如下:

select id, value from X where sig_id=1; 

--> 获取近 1000 行;

但是当我使用的时候,

select id,
round(SUBSTRING_INDEX(group_concat(if(sig_id =1, value,0) order by sig_value desc),',',1),2) 
from X; 

--> 只获取 1 行;

I also get a warning,

Row 74 was cut by GROUP_CONCAT()

如何解决?

正如我所见,在您的以下查询中,您正在执行 GROUP_CONCAT() 而不执行任何 GROUP BY,因此分组是在整个结果集上作为一个组完成的。因此,结果只有一条记录。

select id,
round(SUBSTRING_INDEX(group_concat(if(sig_id =1, value,0) order by sig_value desc),',',1),2) 
from X;

您可能实际上想在某些列上使用 GROUP BY,例如 id 列以获得多个分组结果。