我的查询如下:
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()
如何解决这个问题?
答案 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
来获取多个分组结果。