Untuk mendapatkan jumlah mentah
select window_height, count(*) totalusers
from tbl
group by window_height
order by totalusers desc # or by window_height
Untuk mendapatkan rata-rata modal (ini akan menampilkan beberapa nilai jika ada ikatan untuk jumlah tertinggi)
select window_height, totalusers
from (
select @r := if(totalusers>@r,totalusers,@r) maxcount, window_height, totalusers
from (select @r:=0) initvars, (
select window_height, count(*) totalusers
from tbl
group by window_height
) X ) Y
where totalusers = @r
Ini menggunakan trik MySQL menggunakan variabel untuk menyimpan jumlah maksimal saat melewati subquery agregat. Ringkasan operasi
- O(n):pindai tabel sekali dan buat hitungan (T1)
- O(n):pindai tabel turunan T1 dan simpan jumlah tertinggi dalam variabel @r (T2)
- O(n):pindai tabel turunan T2 dan filter hanya untuk ketinggian dengan jumlah tertinggi