[MySQL] 在一查詢中如何把subquery的結果重複使用
成績 分組編號
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
09/11 14:39, 1F