2013-02-22 48 views
2

我在結構這樣的數據庫信息:添加數據庫列,以獲得和後來分化得到的百分比

shoe size name weight 
9   bob  150 
9   tom  250 
9   joe  100 
5   billy 75 
5   franky 80 
etc. 

你的想法。我想通過鞋碼加起來的重量,然後把每一個分成一個百分比。因此,鞋號9將爲500.然後通過總和除以每個尺寸..所以鮑勃將是鞋號9組的30%,湯姆將是鞋號組9的50%,並且喬將是鞋的20%大小組9

有關如何做到這一點的任何想法?

回答

1
SELECT SUM(weight) as sum, COUNT(*) as count 
FROM mytable 
GROUP BY size 

這會給你的權重之和每種尺寸的數量,就可以得到平均

或者,如果你想這樣做一次性

SELECT size, SUM(weight)/COUNT(*) as average 
    FROM mytable 
    GROUP BY size 

編輯 - 我錯了你的問題,這裏是一個查詢,將做你在問什麼

SELECT b.name, b.weight/sum(a.weight) as average 
    FROM table as a JOIN table as b on a.size=b.size  
    WHERE 1 group by a.size, b.name 
+0

我實際上誤讀你的問題 – Daniel 2013-02-22 20:49:31

+0

檢查編輯.. – Daniel 2013-02-22 21:01:06

+0

原諒我的無知,但我將如何迴應每個人生成的%? – 2013-02-23 01:10:38