2013-02-22 84 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