是否有一些查询“魔法”可以执行我正在寻找的内容,或者必须使用返回的结果以编程方式完成?
我有“骨头”表:
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厘米的骨头呢?
答案 0 :(得分:5)
使用
SUM(amount)
而不是
COUNT(*)
因为SUM()会添加该分组中的所有值,而COUNT()仅计算NOT NULL的出现次数
答案 1 :(得分:-1)
试试这个:
SELECT Color,SUM(amount) as count FROM tablename
GROUP BY Color ORDER BY count DESC;
COUNT =计算次数,
SUM =提供添加列数据