如何获得所列问题的SQL结果

时间:2020-03-19 20:20:35

标签: sql

  • id 1111由于申请日期为03/18/2020,将被视为多付款人
  • id 2222将被视为多付款人
  • ID 3333将被视为单一付款人

样本数据

id      Apt         cp              dob
--------------------------------------------
1111    3/19/2020   BC/BS MEDICARE  00:00.0
1111    3/19/2020   MEDICARE        00:00.0
2222    3/18/2020   MEDICARE        00:00.0
2222    3/18/2020   BC/BS MEDICARE  00:00.0
2222    3/17/2020   BC/BS MEDICARE  00:00.0
2222    3/17/2020   BC/BS MEDICARE  00:00.0
3333    3/19/2020   BC/BS
3333    3/19/2020   BC/BS

查询:

SELECT DISTINCT
    t1.ID,
    t1.dob,
    t1.CP,
    t1.apt,
    COUNT(*) AS Cpcount
INTO 
    t2l
FROM 
    t1
GROUP BY
    ID, dob, CP

我想知道ID,DOB和apt在同一天拥有1个CP还是在同一天拥有超过1个CP(差异CP)

1 个答案:

答案 0 :(得分:1)

如果我的理解正确,则您需要在给定日期计数distinct个CP。这样对吗?该解决方案适用于Oracle,并且可以在其他数据库中使用。

select 
id, dob, apt, count(distinct(cp))
from table 
group by id, dob, apt
having count(distinct(cp))>1;