[英]MySQL - Sort results in descending order of overall count
我有一張桌子,如下
年--------組織-------名稱----------類別--------積分
2005 -------- ABC ------- N1 ---------- CAT1 -------- 10
2006 -------- DEF ------- N2 ---------- CAT2 -------- 5
等等
該表中的主鍵是(年,組織,名稱)
我需要如下輸出
org -------類別------點(按org總點的降序排列)
DEF ------- CAT1 ------ 1000
DEF ------- CAT2 ------ 5000
DEF ------- CAT3 ------ 2000
ABC ------- CAT1 ------ 6000
ABC ------- CAT2 ------ 100
ABC ------- CAT3 ------ 50
DEF得分為8000,高於ABC得分為6150。因此出現在預期輸出的頂部
我寫了如下的選擇語句
從表中選擇org,cat,count(cat),其中year = 2006按org分組,按cat分組
我按組織將結果排序,但無法按每種組織的總點數的降序對輸出進行排序
任何幫助深表感謝。 謝謝-Praveen
在查詢末尾,您使用desc關鍵字,這將有助於您
使用JOIN將org
單獨分組,並獲得每個組的所有計數的SUM
:
SELECT t.org, t.cat, count(t.cat)
FROM table t JOIN (
SELECT org, count(cat) SumCount
FROM table
WHERE year=2006
GROUP BY org
) tg ON t.org = tg.org
WHERE t.year = 2006
GROUP BY t.org, t.cat
ORDER BY MAX(rs.SumCount), t.org DESC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.