Mysql结果操作

标签 mysql select group-by left-join group-concat

我有一个大的 mysql 查询,它显示了一列结果,如下所示。 enter image description here

现在我想计算 visit_type 中的每个实体。我该怎么做?

结果:

enter image description here

我不想要任何其他的 sql 查询。我希望事情发生在我的主要查询中:

     SELECT DATE( `fc`.`date` ) AS Date,`f`.`name` AS facility_Name, count( * ),
    `fc`.`provider_id`, CONCAT( `u`.`fname`, ' ', `u`.`lname` ) AS 
    provider_name,
    GROUP_CONCAT((`oc`.`pc_catname`)) AS `visit_type` 
    FROM `form_encounter` AS fc 
    LEFT JOIN `facility` AS f ON ( `fc`.`facility_id` = `f`.`id` )
    LEFT JOIN `users` AS u ON ( `fc`.`provider_id` = `u`.`id` ) 
    LEFT JOIN `openemr_postcalendar_categories` AS oc ON ( `fc`.`pc_catid` = `oc`.`pc_catid` ) 
   WHERE DATE(`fc`.`date`) BETWEEN '2016-06-17' AND '2016-06-24' 
  GROUP BY `fc`.`facility_id`, DATE( `fc`.`date` ),provider_name 
  ORDER BY DATE( `fc`.`date` ) ASC

非常感谢任何帮助。

最佳答案

您需要使用两个级别的聚合来执行此操作。像这样:

SELECT Date, facility_Name, Provider_Id, Provider_Name,
       GROUP_CONCAT(pc_catname, '(', cnt, ')')
FROM (SELECT DATE(fc.`date`) AS Date, f.name AS facility_Name,

             fc.provider_id, CONCAT(u.fname, ' ', u.lname)  AS provider_name,
             pc_catname, COUNT(*) as cnt
      FROM form_encounter fc LEFT JOIN
           facility f
           ON fc.facility_id = f.id LEFT JOIN
           users u
           ON fc.provider_id = u.id LEFT JOIN
           openemr_postcalendar_categories oc
           ON fc.pc_catid = oc.pc_catid 
      WHERE DATE(fc.`date`) BETWEEN '2016-06-17' AND '2016-06-24' 
      GROUP BY fc.facility_id, DATE(fc.date), provider_name, pc_catname
     ) x
GROUP BY facility_id, date, provider_id, provider_name
ORDER BY DATE(fc.date) ASC;

关于Mysql结果操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39247851/

相关文章:

sql - 使用 like 的 PostgreSQL 子查询

r - dplyr使用数据框功能进行汇总

python - pandas 按 Q1 和 Q3 聚合进行分组

mysql - 如何在 postgres 的这个查询中使用函数计数

php - 循环嵌套,我得到一个空白页 (php)

php - 以下问题需要什么 SQL 命令?

mysql - Count(*) 按月分组,如果月份计数为 0,则值为零

mysql - sql中的多级查询

mysql - 异常Mysql存储过程调用

Oracle 过程中的 Select 语句