Re: [SQL ] 篩選重複資料加上 SubQuery

看板Database作者 (Daniel Guo)時間14年前 (2011/06/01 13:25), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串4/4 (看更多)
※ 引述《magiclion (神奇獅子)》之銘言: : ※ 引述《danielguo (Daniel Guo)》之銘言: : : 不是很確定想要的效果, 是讓第一個 query 只查詢指定測驗的結果嗎, 如果這樣? : : SELECT grade, COUNT(*) AS count : : FROM student : : WHERE s = 3 : : GROUP BY grade : : HAVING COUNT(*) > 1 : 感謝您的回覆,您提供的是一個解法,是正確的沒有錯。 : 只是後來我會改用 SubQuery 是因為我需要顯示其他欄位資料,打到這裡我才發現 : 我前面的文章打錯了,應該是這樣: : SELECT * FROM student : WHERE s=3 AND grade IN ( : SELECT grade FROM student : GROUP BY grade HAVING (COUNT(*) > 1)) : 也就是說,第一個 SELECT 是要顯示所有欄位。 : 不知道純 SQL 語法有沒有辦法就顯示所有欄位,並找出某欄位的重複資料, : 並且加一個欄位顯示重複次數呢? SELECT s1.*, t1.count FROM student s1 INNER JOIN (SELECT grade, COUNT(*) AS count FROM student WHERE s = 3 GROUP BY grade HAVING COUNT(*) > 1) t1 ON s1.grade = t1.grade WHERE s1.s = 3 另外裡面的 query 我也加上 WHERE, 這樣就只要統計該場測驗的成績 (雖然如果 query optimizer 夠聰明的話可能會自己做掉) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 71.93.105.54

06/03 12:32, , 1F
感謝您的回答,已測試無誤!又多學一招!
06/03 12:32, 1F
文章代碼(AID): #1DvSqwrK (Database)
文章代碼(AID): #1DvSqwrK (Database)