0
我有包含以下數據MySQL表如下:如何確保特定列組只計算一次BY
MariaDB [testdb]> select * from courses;
+---------+---------+
| student | class |
+---------+---------+
| A | Math |
| B | English |
| C | Math |
| D | Biology |
| E | Math |
| F | Math |
| A | Math |
+---------+---------+
7 rows in set (0.00 sec)
現在我有,我希望看到的計數的簡單情況的人蔘加特定班級。所以我用這個查詢,讓我有如下結果:
MariaDB [testdb]> select class, count(class) from courses group by class;
+---------+--------------+
| class | count(class) |
+---------+--------------+
| Biology | 1 |
| English | 1 |
| Math | 5 |
+---------+--------------+
3 rows in set (0.01 sec)
但這裏的前提條件是,它與學生=「A」計數的行類=「數學」的兩倍。
當我們進行點數計算時,我必須確保每個學生只被計入一次。
我如何修改上述查詢來實現這一目標?
在此先感謝您的任何答案。
見COUNT(DISTINCT ...),但你真的需要這裏PRIMARY KEY。並且要小心你正在計算的內容以及你正在分組的內容。 – Strawberry
閱讀['COUNT()'](https://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_count)函數。它接受'DISTINCT'修飾符。 – axiac
我明白你的意思了,但我不禁想到或許問題出在數據本身。爲什麼學生A要被列出兩次?這不是一個錯誤?如果不是,爲什麼不計算兩次?有些東西不適合這裏。 – Neil