2

我在一个结构如下的数据库中有信息:

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

你明白了。我想将重量与鞋码相加,然后除以每一个以获得百分比。所以鞋码 9 将是 500。然后除以每个尺码的总和......所以 bob 将是鞋码组 9 的 30%,tom 将是鞋码组 9 的 50%,joe 将是鞋码组的 20%尺寸组 9

关于如何做到这一点的任何想法?

4

1 回答 1

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
于 2013-02-22T20:39:32.073 回答