2016-01-05 86 views
0

我有一個包含userID字段和itemID字段的表。我想選擇所有具有兩個或更多實例的itemID相同的所有用戶(也就是說,例如,如果有3個記錄,其中userID = 1且itemID = 7,那麼我希望這些結果,但如果存在只有一個例子)。我需要獲取所有用戶(不僅僅是某個用戶ID的結果)。 有人可以建議我怎麼能做到這一點? 謝謝。在數據庫中選擇具有多個實例的用戶

+0

歡迎來到StackOverflow。請首先檢查StackOverflow在提問時的幫助。專注於[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)和[如何創建一個最小,完整和可驗證的示例](http://stackoverflow.com/幫助/ mcve),而且其他[幫助主題](http://stackoverflow.com/help/asking)會很有用。 –

回答

0

你只需要使用group by和having。具有條款就像是除了它也適用於聚合。所以它就像select userID, itemID, count(*) from mytable group by userID, itemID having count(*) > 1

1

您可以使用聚合和having子句執行此操作。如果你只是希望用戶:

select distinct userID 
from t 
group by userId, itemID 
having count(*) >= 2; 

這是一個有趣的查詢,因爲它是在哪裏group byselect distinct一起使用非常罕見的情況之一。如果您需要userId/itemId對,那麼您將使用select userId, itemId,而不需要distinct

相關問題