SQL识别比出现某些月份更多的记录

问题描述 投票:0回答:1

我试图找出谁拥有超过4个月的任何一个程序代码的权利要求的成员。下面是我尝试过的SQL代码。我不知道如果这是正确的。

+-------------+---------------+-----------+------------+
| ServiceDate | ProcedureCode | MemberId  | Claim_Nbr  |
+-------------+---------------+-----------+------------+
| 2018-01-15  | K800          | 364882903 | 1600235465 |
+-------------+---------------+-----------+------------+
| 2018-02-15  | K800          | 364882903 | 1607478399 |
+-------------+---------------+-----------+------------+
| 2018-01-15  | K800          | 388299399 | 4589992948 |
+-------------+---------------+-----------+------------+
| 2018-03-15  | K800          | 364882903 | 1600489300 |
+-------------+---------------+-----------+------------+
| 2018-04-15  | K800          | 364882903 | 1600388289 |
+-------------+---------------+-----------+------------+
| 2018-05-15  | K800          | 364882903 | 1600028848 |
+-------------+---------------+-----------+------------+
| 2018-06-15  | K800          | 364882903 | 1600894889 |
+-------------+---------------+-----------+------------+
| 2018-07-15  | K800          | 364882903 | 1600023884 |
+-------------+---------------+-----------+------------+
| 2018-07-15  | K800          | 364882903 | 1600934888 |
+-------------+---------------+-----------+------------+
| 2018-02-15  | K800          | 388299399 | 3774999999 |
+-------------+---------------+-----------+------------+
| 2018-03-15  | K800          | 388299399 | 9498378489 |
+-------------+---------------+-----------+------------+

SQL代码

SELECT ProcedureCode, MemberId FROM CLAIMS
GROUP BY ProcedureCode
HAVING SUM(Month(ServiceDate))>4

SQL example

sql sql-server group-by having
1个回答
1
投票

如果你想在程序代码将出现在4个多月的成员,您可以使用count(distinct)

select memberId, procedureCode
from claims
group by memberId, procedureCode
having count(distinct year(ServiceDate) * 100 + month(ServiceDate)) > 4;
© www.soinside.com 2019 - 2024. All rights reserved.