我想按特定值對行進行計數和分組。這似乎很簡單,但我似乎無法做到。mySQL選擇並按值分組
我有一個表,建立與此類似:
Table: Ratings
id pID uID rating
1 1 2 7
2 1 7 7
3 1 5 4
4 1 1 1
id是主鍵,PID和UID是外國鍵。評級包含1到10之間的值,並且僅在1和10之間。
我想運行一些統計信息並計算具有特定值的評分數。在上面的例子中,兩個都留下了等級爲7
所以我寫了下面的查詢:
SELECT COUNT(*) AS 'count' , 'rating'
FROM 'ratings'
WHERE pID= '1'
GROUP BY `rating`
ORDER BY `rating`
其產生很好的結果爲:
我想獲取mySQL查詢以包含1到10之間的值。
例如:
Desired Result
count ratings
1 1
0 2
0 3
1 4
0 5
0 6
2 7
0 8
0 9
0 10
不幸的是,我是比較新的SQL和我經歷過的一切讀書,我可以得到我的手了幾個小時,但我不能得到它工作。我一直在傾向於某種類型的JOIN。
如果任何人都可以指出我正確的方向,這將不勝感激。
謝謝。
謝謝,這正是我在找什麼。正如我所說的,我對SQL相當陌生,並且在之前嘗試過時無法獲得子查詢的語法。 – Foo 2010-03-27 05:57:40
可能是你的查詢對於用戶來說更簡單,但對於mysql來說要複雜得多。 「這種方法的優點是你可以爲你的評級提供更多的信息」這不是這種方法的優點。在mysql中使用連接也可以做到這一點。 – zerkms 2010-03-27 06:17:07
@jerkms我並不意味着使用子查詢的好處,我的意思是讓第二個表存儲允許的評級級別的信息的好處。我可能應該說得更好一點。 – Tarka 2010-03-27 16:36:47