Group_concat()会删除一些行

时间:2015-09-04 21:19:18

标签: mysql group-concat

我的查询如下:

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; 

- >只取一行;

I also get a warning,

Row 74 was cut by GROUP_CONCAT()

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

正如我所看到的,在您的下方查询中,您正在执行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来获取多个分组结果。