sql - SQL 查询以获取具有成功状态的记录
问题描述
我在下面有一张桌子。每天将运行 3 个不同的文件,并且状态将作为成功/失败插入到表中。我需要所有 3 个状态为成功的文件并获取该日期。这里根据下表 SQL 查询必须返回 Date 2020-02-25 (因为上面的所有 3 个文件都是成功的)
请帮助我查询,我尝试了很多查询但无法获得所需的结果。
ID Pipeline_name Status UpdatedDate
1 Student_Dump SUCCESS 2020-02-27
2 Teacher_Dump SUCCESS 2020-02-27
3 Subjects_Dump Failed 2020-02-27
4 Student_Dump SUCCESS 2020-02-26
5 Teacher_Dump Failed 2020-02-26
6 Subjects_Dump SUCCESS 2020-02-26
7 Student_Dump SUCCESS 2020-02-25
8 Teacher_Dump SUCCESS 2020-02-25
9 Subjects_Dump SUCCESS 2020-02-25
解决方案
试试这个:
WITH cteStatus AS(
SELECT UpdatedDate, Status, ROW_NUMBER() OVER (PARTITION BY UpdatedDate, Status ORDER BY UpdatedDate, Status) rn
FROM T1
)
SELECT c.UpdatedDate
FROM cteStatus c
WHERE Status = N'SUCCESS'
AND rn = 3
这个想法是获取所有日期,其中每个日期有三个状态为成功的记录。
这里是小提琴的链接:http ://sqlfiddle.com/#!18/a25c2b/5/1
推荐阅读
- azure-service-fabric - ServiceFabric / IFabricSecretStoreClient / COM 异常
- python - 100% Accuracy 使用 SVC 分类,一定有问题吗?
- java - 如何使整数输入出现在提示用户输入的消息之后而不是之前?
- linux - Buildroot Linux 的内核恐慌
- mysql - 了解 Handlebars、Express 和 Node.js 背后的基础知识
- jython-2.7 - 在今天以外的日子打开旅行计划脚本较慢
- c# - 为什么 input = charArray.ToString() 不返回字符串?
- pandas - 如何在 Pandas 中从日历日延迟营业月
- android - 获取当前运行 android 的应用程序(应用程序拦截器)
- python - 使用 MongoDB 循环和组合数组?