【问题标题】:SQL Count for each grouping每个分组的 SQL 计数
【发布时间】:2016-12-07 03:13:45
【问题描述】:

所以我正在为以下内容编写 SQL 语句。列出每个保险代码的患者人数。

这是我的 SQL 语句。

SELECT INSURANCE.INS_ID, PATIENT.MPI_LastName
FROM PHYSICIAN 
     INNER JOIN 
           (PATIENT INNER JOIN 
                    (INSURANCE INNER JOIN VISIT 
                       ON INSURANCE.INS_ID = VISIT.VIS_InsuranceCode
                    ) 
             ON PATIENT.MPI_NUMBER = VISIT.VIS_MPINum
           ) 
           ON PHYSICIAN.PHY_ID = VISIT.VIS_Phys
ORDER BY INSURANCE.INS_ID;

我不知道如何编写 SQL 来计算每个保险代码的患者。不计算重复记录。

【问题讨论】:

  • 重复记录意味着多次计算相同的MPI_LastName
  • 使用count(distinct lastname)group by insid...
  • 该问题要求按保险代码而非患者姓名计算患者人数。删除患者姓名列,添加 COUNT 和 GROUP BY。
  • 如果患者有唯一标识符 (MPI_NUMBER??),那么您应该使用COUNT(DISTINCT [Unique Id]) 而不是姓氏 - 我假设有些人,尤其是家庭成员,使用相同的姓氏。

标签: sql ms-access count


【解决方案1】:
SELECT INSURANCE.INS_ID, count(distinct PATIENT.MPI_LastName) as count 
  FROM VISIT    
  JOIN PATIENT  
        ON PATIENT.MPI_NUMBER = VISIT.VIS_MPINum
  JOIN INSURANCE 
        ON INSURANCE.INS_ID   = VISIT.VIS_InsuranceCode 
 GROUP BY INSURANCE.INS_ID


  SELECT VISIT.VIS_InsuranceCode, count(distinct PATIENT.MPI_LastName) as count 
  FROM VISIT    
  JOIN PATIENT  
        ON PATIENT.MPI_NUMBER = VISIT.VIS_MPINum
 GROUP BY VISIT.VIS_InsuranceCode 

【讨论】:

  • 不讨厌使者,但没有解释,姓氏可能不是唯一的。在审查过程中,您被教导要对仅代码的答案投反对票。
  • @maraca 不是唯一的——这就是不同的目的。有复习培训吗?你知道那个答案是错误的吗?如果是这样,为什么不发布正确的答案?干杯
  • 我不会对这个答案投反对票,但编辑你的答案并添加一些细节很简单。人们看到解释后往往会改变主意。另外 - 我个人不会在查询中为生成的字段名称使用保留字(计数)
  • @Paparazzi - 我认为@maraca 指的是在同一个INS_ID 中有多个患者具有相同姓氏的可能性,这意味着在该字段上执行不同的计数不会合适的。但是,我没有投反对票,您真的认为这是一个高质量的答案吗?
  • 什么?我是说 DID downvote 的人没有使用 StackOverflow 标准。现在我不知道我为什么要参加这个毫无意义的讨论
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-05
  • 1970-01-01
  • 2021-08-14
  • 2016-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多