簡體   English   中英

MySQL-按總計數的降序對結果進行排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM