首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql oracle:列表记录,其值在同一个月内重复超过N次

sql oracle:列表记录,其值在同一个月内重复超过N次
EN

Stack Overflow用户
提问于 2017-05-10 06:34:45
回答 1查看 67关注 0票数 0

如果在同一个月内存储了三个以上具有相同贸易名的记录,我应该从我的记录中提取。

我有一个记录的例子

代码语言:javascript
复制
TradeID      Tradename           PrescDT
------------------------------------------
1109         Panadol             sysdate-1
1123         Opioids             sysdate-3
1125         Doxycycline         sysdate-3
1138         Panadol             sysdate-14
1139         Panadol             sysdate-3
1141         Panadol             sysdate-5
1142         Codeine             sysdate-5
1162         Opioids             sysdate-14
1167         Codeine             sysdate-14
1168         Prednisone          sysdate-14
1170         Codeine             sysdate-21
1172         Codeine             sysdate-22

所以它应该只返回给我这个,在那里我只想要交易名和日期。

代码语言:javascript
复制
Tradename           PrescDT
------------------------------
Panadol             sysdate-1
Panadol             sysdate-14
Panadol             sysdate-3
Panadol             sysdate-5

我试过使用这个,但是返回给我,所有的记录在同一个月内重复至少三次,这不是我想要的

代码语言:javascript
复制
SELECT Tradename, PrescDT
FROM (
    SELECT p.*, COUNT(*) OVER (PARTITION BY TRUNC(PrescDT, 'MM')) AS c 
    FROM PRESCRIPTION p
    ) p
WHERE c > 3
ORDER BY prescDT ASC;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-10 06:46:11

您的查询几乎是正确的。您需要将贸易名包含到PARTITION BY子句中:

代码语言:javascript
复制
SELECT Tradename, PrescDT
FROM (
    SELECT p.*, COUNT(*) OVER (PARTITION BY Tradename, TRUNC(PrescDT, 'MM')) AS c 
    FROM PRESCRIPTION p
    ) p
WHERE c > 3
ORDER BY prescDT ASC;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43885116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档