2012-08-29 57 views
0

我有一個表,看起來像這樣第二列Mysql組如果第一列相等?

id | rating 
1 | 1 
1 | 3 
1 | 1 
1 | 2 
2 | 3 
2 | 3 
2 | 1 

等,你的想法。

不管怎樣,我想這個結果落得集

id | rating | num 
1 | 1  | 2 
1 | 3  | 1 
1 | 2  | 1 
2 | 3  | 2 
2 | 1  | 1 

所以,我想要做的是組的評價我們一起只要ID是一樣的

我想我可能只是做group by id, rating和只是認爲這將組只有兩列是相同的,但如果其中任何一列是一樣的,所以我最終

id | rating | num 
1 | 1  | 7 

它不是組我該如何解決這個問題?

+0

你能發佈您嘗試過的查詢? – Omesh

+0

是的,它看起來像是在你的查詢語法錯誤,或者它可能是一個子查詢和進一步的聚合正在進行,因爲你提到的部分「GROUP BY ID,評級」毫無疑問是正確的語法爲了你想要的東西。 –

回答

4

我不明白你遇到的問題。此查詢的工作對我來說:

select 
    id, rating, COUNT(rating) as num 
FROM rating 
GROUP BY id, rating 
ORDER BY id, rating ASC; 

而且,只是要徹底,這是我的整個測試環節:

mysql> create table rating (id int, rating int); 
Query OK, 0 rows affected (0.04 sec) 

mysql> insert into rating values (1,1),(1,3),(1,1),(1,2),(2,3),(2,3),(2,1); 
Query OK, 7 rows affected (0.00 sec) 
Records: 7 Duplicates: 0 Warnings: 0 

mysql> select id, rating, COUNT(rating) as num FROM rating GROUP BY id, rating; 
+------+--------+-----+ 
| id | rating | num | 
+------+--------+-----+ 
| 1 |  1 | 2 | 
| 1 |  2 | 1 | 
| 1 |  3 | 1 | 
| 2 |  1 | 1 | 
| 2 |  3 | 2 | 
+------+--------+-----+ 
5 rows in set (0.00 sec) 
+1

http://sqlfiddle.com/#!2/e9f90/1 –

+0

謝謝@lc。我想它沒有超過我的尺寸門檻。 –

+0

但是再一次,sqlfiddle比這更有價值...應該注意。乾杯! –

1
SELECT id,rating,count(rating) from table group by id,rating 
3

你可以嘗試

SELECT id,rating,COUNT(rating) AS num 
FROM table1 
GROUP BY id,rating 
ORDER BY id ASC 

SQLFiddle Demo

相關問題