[英]Checking for missing data in SQL
我很難知道這是否有解決方案。
我試圖檢測丟失的每小時數據。 樣品:
表HRLY_DATA:
NAME HOUR
Me 0
Me 1
Me 2
Me 3
Me 6
Me 7
You 0
You 1
You 2
You 3
You 4
You 5
You 6
You 7
如您所見,Me的[HOUR]數據缺少4和5.我想要一個輸出的查詢:
NAME HOUR
Me 4
Me 5
現在,這就是我所擁有的:
SELECT d.NAME, HR FROM HRs c
LEFT OUTER JOIN
(
SELECT distinct a.NAME
FROM HRLY_DATA a
INNER JOIN
(
SELECT NAME FROM
(
SELECT NAME, count(*) as CNT
FROM
(
SELECT DISTINCT NAME, HOUR
FROM HRLY_DATA
) as i
GROUP BY NAME
) as ii
WHERE CNT < 8
) as b
ON a.NAME=b.NAME
) as d
ON c.HR=d.HOUR
WHERE d.HOUR IS NULL
的HR
HR
0
1
2
3
4
5
6
7
我得到這個輸出:
NAME HR
NULL 4
NULL 5
HOUR的數據范圍僅為0 - 7 ..
順便說一下,我正在使用SQL SERVER / MSSQL。
:(
對不起,如果我無法清楚地解釋我的問題。 :(
請試試:
select
distinct x.NAME, number HOUR
From
master.dbo.spt_values cross join HRLY_DATA x
where number between 0 and 7
except
select NAME, HOUR FROM HRLY_DATA
由於表HR包含數據0-7,請嘗試:
select
distinct NAME, HR
From
@HR cross join HRLY_DATA
except
select * from HRLY_DATA
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.