[MySQL] 在一查詢中如何把subquery的結果重複使用

看板Database作者 (squirre1)時間16年前 (2009/09/11 06:02), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
成績 分組編號 id name grade groupid ============================ 1 小明 70 1 2 大明 80 1 3 .... 90 2 4 .... 100 2 5 .... 10 2 6 .... 70 3 7 .... 60 4 我想找出 每組成績>=60的人 佔 所有成績>=60的人 的比例 也就是想長這樣: groupid 每組>=60的人數 所有>=60的人數 比例 ================================================ 1 2 6 0.333 2 2 6 0.333 3 1 6 0.166 4 1 6 0.166 groupid 及 比例 就是我要的結果 我想到的方法是 select groupid, count(*)/(select count(*) from table where grade>=60) from table where grade>=60 group by groupid 可是問題是我的資料表裡面有數十萬筆資料 因此做select...where的速度會很慢 有沒有辦法讓我可以只做一次select...where就算出結果? 例如我可以先算出這個表 select groupid, count(*) from table where grade>=60 group by groupid groupid count(*) ================ 1 2 2 2 3 1 4 1 然後再重複使用這個表(而不用重新從整個表裡做select...where)算出比例嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.249.103

09/11 14:39, , 1F
開 View,或是用 temp table,可是速度上應該沒啥差..
09/11 14:39, 1F
文章代碼(AID): #1AgNTw6I (Database)