我在这样的数据库中有信息:
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%,汤姆将是鞋子尺寸组9的50%并且乔将是鞋子的20%规模组9
关于如何做到这一点的任何想法?
答案 0 :(得分: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