2011-02-17 69 views
1

我有一個表格如下MySQL - 按結果從大到小排列結果

year -------- org ------- name -------- - 類別--------積分
2005 -------- ABC ------- N1 ---------- CAT1 ------ - 10
2006 -------- DEF ------- N2 ---------- CAT2 -------- 5
etc

此表中的主鍵是(年,組織,名稱)

我需要的輸出如下

有機------- ------類別分
DEF(降序組織的總體點的順序排序) - - - - - CAT1 ------ 1000
DEF ------- CAT2 ------ 5000
DEF ------- CAT3 ------ 2000
ABC - ------ CAT1 ------ 6000
ABC ------- CAT2 ------ 100
ABC ------- CAT3 ------ 50

DEF得分爲8000,比比分ABC這是6150所以出現在預期輸出的頂部

我寫了一個select語句如下

選擇組織,貓較高從表計數(貓),其中年= 2006年集團通過組織,通過組織

貓爲了我得到的結果通過組織有序,但我無法得到輸出遞減點的整體數量的順序排序每一個ty pe org

任何幫助,非常感謝。謝謝 - 普利文

回答

0

使用連接到組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 
0

在查詢u使用DESC關鍵字的結束,這將有助於你出來