在給定的表中,有2個重要字段。一個字段是字段的外鍵,在這種情況下,userID是另一個狀態字段。數據類型並不重要,但爲了簡單起見,兩者都是整數。狀態字段具有有限數量的輸出,爲了簡單起見,也是0或1.這個外鍵當然可以是任何合理的整數。sql通過X獲得組中沒有特定Y值的X的計數,Y
下面的查詢將有每個用戶ID最多2行,共行的數量與每個狀態
SELECT userID, Status, count(Status) as total FROM tbl Group by userID, Status
如果上一個示例表運行,它會看起來像
userID Status total
1 0 5
1 1 2
2 1 2
4 0 6
對於這個虛表,這意味着ID爲1的用戶在該表中有7行,其中5個狀態爲0,而另外2個狀態爲1.用戶ID 2只有2行狀態1,用戶ID 3在該表中沒有行,並且4具有狀態0的6個。
怎麼能夠進一步細化這一點,以便只返回與0狀態行,但只有當用戶ID沒有與狀態1.任何行。在上述情況下,只返回行會
userID Status total
4 0 6
我討厭期待我們從結果推斷源數據集的問題。我既不是心靈也不是特別聰明,所以我認爲它是優秀的。 – Strawberry
@Strawberry爲什麼當我要求在方程x + y = 2中求解x時,人們問我什麼是y。正如接受的答案所示,有一種方法可以在不知道y的情況下解決這個問題,就像你可以在不知道代數中的y的情況下求解x一樣。並非每個事實都需要回答一個問題。這個問題是一個概念性的問題,這個概念很重要,它的用途不是。 – Ryan