我的表有两个字段(ID和Status)
我想得到每个ID的每个状态计数的group_concat。
ID Status
1 True
1 True
1 False
2 True
2 False
2 False我希望我的结果是
ID Group_Concat
1 (True-2, False-1)
2 (True-1, False-2)我可以在PHP...unless中解析True#/ False-#,在group_concat中有一种方法可以使它成为一个单独的字段吗?
我使用了以下内容,但avail..it一直在为每个ID和状态创建单独的行。这将是一个更大的选择的一部分,但我认为这与这个问题与SQL无关。
SELECT ID,Status, GROUP_CONCAT(c)
FROM (
SELECT ID, Status,COUNT(Status) c
FROM buyer_advert GROUP BY ID,Status
) a GROUP BY ID, Status发布于 2015-08-01 23:22:33
您可以通过在concat中添加如下所示的group_concat来做到这一点:
SELECT
ID,
GROUP_CONCAT(CONCAT(Status,'-',c),' ' ORDER BY Status DESC)
FROM (SELECT ID, status, COUNT(Status) c
FROM buyer_advert
GROUP BY ID, status
) a
GROUP BY ID;示例SQL Fiddle
发布于 2015-08-01 23:22:45
使用子查询:
select id, group_concat(concat(status, '-', cnt))
from (select id, status, count(*) cnt
from mytable group by 1, 2) x
group by 1请参阅SQLFiddle
https://stackoverflow.com/questions/31767101
复制相似问题