简体   繁体   English

MySQL-尝试将`GROUP_CONCAT`与`COUNT()`结合使用

[英]MySQL - trying to combine `GROUP_CONCAT` with `COUNT()`

SELECT A.id  ,A.Prospect_Id, GROUP_CONCAT(DISTINCT A.MYVIEW SEPARATOR ' , ') AS myview
FROM
   (SELECT id, Prospect_Id, CONCAT(Current_Status, '(', count(Current_Status), ')') AS MYVIEW     
    FROM prospectdata1
    GROUP BY Prospect_Id) A
GROUP BY  A.prospect_id
HAVING myview REGEXP 'PHONE_FOLLOW_UP.*DUPLICATE'

Output: 输出: 在此处输入图片说明

Expected Output: 预期产量: 在此处输入图片说明

You need to group by both Prospect_Id & Current_Status: 您需要同时按Prospect_Id和Current_Status进行分组:

SELECT MIN(MinId) AS id
     , Prospect_Id
     , GROUP_CONCAT(CONCAT(Current_Status, '(', SUM(Cnt), ')') SEPARATOR ' , ') AS myview
FROM (
  SELECT Prospect_Id
       , Current_Status
       , COUNT(*) Cnt
       , MIN(id) MinId
   FROM prospectdata1
  WHERE Current_Status REGEXP 'PHONE_FOLLOW_UP.*DUPLICATE'
  GROUP BY Prospect_Id
      , Current_Status
) A
GROUP BY prospect_id

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM