2016-04-13 64 views
-1

這是來自Hacker Rank的問題。NOT IN SQL查詢不起作用

設NUM是STATION表中的CITY條目數,NUMunique 是唯一城市的數量。從 STATION查詢NUM-NUMunique的值。

這是我寫的查詢。

SELECT COUNT(CITY) FROM STATION WHERE CITY NOT IN (SELECT COUNT(DISTINCT CITY) FROM STATION); 

這產生了錯誤的答案。任何想法我在這裏做錯了什麼。

+1

顯示錶的結構和一些測試數據。顯示你得到的結果並解釋你爲什麼認爲它是*「錯誤的答案」*。顯示正確的答案。閱讀[問]。 – axiac

+0

當然,它會產生錯誤的答案。內部的'SELECT COUNT(...)'產生一個數字。 '哪裏的城市不在(選擇COUNT(...))'就像比較蘋果和橘子。 – axiac

+0

我想你錯過了這個事實,正確的答案是'總數量城市 - 數量不限的城市'這不是你的查詢所做的事情 – RiggsFolly

回答

2

可以使用DISTINCT關鍵字COUNT()裏面得到你的答案在一個簡單的查詢

SELECT COUNT(CITY) - COUNT(DISTINCT CITY) as the_answer FROM STATION; 
+0

我沒有'選擇((選擇計數(城市)從站) - (選擇計數(不同城市)從站));'哪些工作。當然你有更優雅的解決方案,但我是SQL新手。 – Zeus