推 bebolee:加在最外圍再GROUP BY一次不可以嗎? 05/31 13:31
DB資訊:PostgreSQL
作業系統:FreeBSD
程式語言:PHP
在一個考試資料表中,我想要找出所有成績相同的學生並且計算重複數量,
所以我寫了:
SELECT grade, COUNT(*) AS count
FROM student
GROUP BY grade
HAVING (COUNT(*) > 1)
運作無誤,會顯示所有相同成績的資料,第二欄則顯示重複數量。
但是該資料表是將每次測驗都寫在一起,用欄位 s 區隔,因此必須加入 s 篩選,
所以我加了 SubQuery:
SELECT grade FROM student
WHERE s=3 AND grade IN (
SELECT grade FROM student
GROUP BY grade HAVING (COUNT(*) > 1))
這樣運作也是正常的,只是我就無法加入一個 COUNT 欄位來計算重複數量了。
這個 COUNT(*) AS count 不管加在哪裡都不對,不知各位先進有無方法可以
讓這個 SQL 有加入計算重複數量欄位的功能?
註:用程式語言來計算零難度,我已經用 PHP 計算了,只是想知道有沒有辦法
直接用 SQL 計算。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.85.144.67