【问题标题】:MySQL Sum(Total) and Sum(User) with ROLLUPMySQL Sum(Total) 和 Sum(User) 与 ROLLUP
【发布时间】:2012-10-31 04:22:54
【问题描述】:

我在处理复杂的 MySQL 查询时遇到了一点麻烦。我正在尝试从此查询中获取 3 列。程序的名称、每个程序的站点总数以及每个程序的医师总数(用户总数)。我正在链接 2 个表,procedurestbl_syn_procedure

只有一个条件可以得到我的医师总数(用户总数),即procedures.phys_id = '##',但我不确定如何将其合并到查询中。

我目前有一个大型查询,它提供了我需要的一半数据。

SELECT  
  IFNULL( Synoptic, 'Total Count') AS Synoptic, Total
FROM ( 
SELECT  
  Synoptic, 
  SUM( Data ) AS Total
FROM ( 
      SELECT 
        tbl_syn_procedure.name AS 'Synoptic',
        COUNT(*) AS Data
        FROM procedures 
        JOIN tbl_syn_procedure ON 
        procedures.proc_synoptic_id = tbl_syn_procedure.name_id 
        GROUP BY procedures.proc_synoptic_id 
     ) AS stats 
  GROUP BY Synoptic WITH ROLLUP
) AS stats

这给了我一个两列的表格,如下所示:

概要 -------------- 总计

APBI 设备插入 ---------- 1328

MRI 引导活检 ------------- 71

立体定向活检 ------------- 10504

总数 ---------------------- 11903

但正如您所见,它缺少医师总数(用户总数)。如果有人可以就如何将第三列添加到查询中给我一些建议。

【问题讨论】:

  • 查看两个表的相关列及其关系会很有帮助。并且您想要每个程序和每个医师的医师总数吗?因为如果每个程序都与一个医生相关联(我假设),那么一个程序的医生总数将与站点总数相同?
  • 在程序表中有一个名为 phys_id 的列。每次医生进入程序时,他们的 id 都会输入到该字段中。所以我们需要统计所有的程序,还要统计procedures.phys_id = '##'(登录的医师ID号)的程序。对于两个相关表的列... tbl_syn_procedure 有 id,name,name_id,rank 过程有一个字段标题 proc_synoptic_id 链接到 tbl_syn_procedure name_id...我们正在链接这些表以便我们可以显示概要的名称程序。显示超声活检而不是 biopsy_us

标签: php mysql subquery sum rollup


【解决方案1】:

试试这个

select
count(p.proc_synoptic_id), p.proc_synoptic_id, name, num_phys_procedures
from
procedures p
inner join tbl_syn_procedure on p.proc_synoptic_id = tbl_syn_procedure.name_id
left join
(
    select count(proc_synoptic_id) as num_phys_procedures, proc_synoptic_id from procedures
    where phys_id = ##
    group by proc_synoptic_id
) phys_procedures on p.proc_synoptic_id = phys_procedures.proc_synoptic_id

group by proc_synoptic_id, name;

它首先获取手术总数,然后加入派生表phys_procedures,其中包含特定医师的手术数量。

【讨论】:

    猜你喜欢
    • 2011-08-29
    • 2021-11-14
    • 2021-11-26
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 2013-04-30
    • 1970-01-01
    • 2012-06-17
    相关资源
    最近更新 更多