2010-02-10 181 views
4

我注意到一些幫助構建SQL陳述。目前,我有以下幾點:SQL ORDER BY GROUP BY內部

SELECT a, b, count(1) 
FROM table 
GROUP BY a, b 
ORDER BY a asc, count(1) DESC 

每行顯示內各由一個字母,然後分組和順序由B到最低的最高發生的所有獨特B的總和。我實際上喜歡的是能夠按A的每個分組內的總數進行排序(將每行視爲小計)。

+0

您能否提供一個數據輸出的例子。例如目前你有「美國,加利福尼亞,15」,「美國,華盛頓,10」; 「澳大利亞,維多利亞3」。你想如何重新安排這些數據? – 2010-02-10 15:28:15

+0

「我實際上喜歡的是能夠按A的每個分組內的總數進行排序(將每一行視爲小計)」。 b? – Brettski 2010-02-10 15:29:09

+0

我不確定你在找什麼。你能否澄清一下,或者添加一個小例子表格,當前結果以及你想要得到的結果? – 2010-02-10 15:30:01

回答

4
SELECT a, b, COUNT(*) AS bcnt, 
     (
     SELECT COUNT(*) 
     FROM mytable mi 
     WHERE mi.a = mo.a 
     ) AS acnt 
FROM mytable mo 
GROUP BY 
     a, b 
ORDER BY 
     acnt DESC, bcnt DESC