首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个字段的GROUP_CONCAT

两个字段的GROUP_CONCAT
EN

Stack Overflow用户
提问于 2015-08-01 23:13:52
回答 2查看 3.9K关注 0票数 1

我的表有两个字段(ID和Status)

我想得到每个ID的每个状态计数的group_concat

代码语言:javascript
复制
ID  Status
1   True
1   True
1   False
2   True
2   False
2   False

我希望我的结果是

代码语言:javascript
复制
ID Group_Concat
1  (True-2, False-1)
2  (True-1, False-2)

我可以在PHP...unless中解析True#/ False-#,在group_concat中有一种方法可以使它成为一个单独的字段吗?

我使用了以下内容,但avail..it一直在为每个ID和状态创建单独的行。这将是一个更大的选择的一部分,但我认为这与这个问题与SQL无关。

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-01 23:22:33

您可以通过在concat中添加如下所示的group_concat来做到这一点:

代码语言:javascript
复制
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

票数 4
EN

Stack Overflow用户

发布于 2015-08-01 23:22:45

使用子查询:

代码语言:javascript
复制
select id, group_concat(concat(status, '-', cnt))
from (select id, status, count(*) cnt
  from mytable group by 1, 2) x
group by 1

请参阅SQLFiddle

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31767101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档