2013-11-15 95 views
1

是否有一些查詢「魔術」可以執行我正在查找的內容,或者必須使用返回的結果以編程方式完成?MySQL:計算每次出現的總「值」

我有表「骨頭」:

Color Amount Length 
    ----------------------- 
    yellow 3  15 
    brown 2  16 
    white 4  10 
    yellow 2  11 
    black 2  15 
    white 1  15 
    brown 2  16 
    white 4  10 
    yellow 1  11 
    black 2  15 

其實我是想就在這,我看到它是由各種顏色的骨頭總量排序,看量以及一個視圖。 看起來應該像:

Color Amount 
    ----------------------- 
    white 9 
    yellow 6 
    brown 4 
    black 4 

但到目前爲止,我已經想通了只有下面的查詢:

SELECT Color,COUNT(*) as count FROM tablename GROUP BY Color ORDER BY count DESC; 

但是,這給了我:

Color Amount 
    ----------------------- 
    white 3 
    yellow 3 
    brown 2 
    black 2 

這是發生計數具有不同的值,但不是我真正想要的。 在一個查詢中可能嗎?如果這樣的魔術可能我如何擴展它?例如我數數一樣,但讓我們說,對於11釐米以上的骨骼?

+2

使用'總和(金額)',而不是'COUNT(*)' – Laurence

+0

總和(金額)的量 – Mihai

回答

-1

試試這個:

SELECT Color,SUM(amount) as count FROM tablename 
GROUP BY Color ORDER BY count DESC; 

COUNT =計數的出現編號,

SUM =給人加列數據

+1

您應該真的解釋_why_這是否有效。 –

+0

一個公認的答案與負面投票....很酷 –

5

使用

SUM(amount) 

,而不是

COUNT(*) 

因爲SUM()將所有在該分組()僅計算爲NOT NULL出現的次數值,而COUNT