我在这里阅读了许多关于计算不同值的帖子,但找不到合适的解决方案。 在工作中,我创建了一个连接到数据库的Openoffice电子表格,如下所示:
packID Date Surname Name Substance A Substance B Substance C
1 5.9.2015 Doe John 50 50 100
2 5.9.2015 Parker Peter 25 30 60
3 5.9.2015 Doe John 15 80 20
4 5.9.2015 Doe John 40 20 140
5 5.9.2015 Johnson Jack 80 50 10
6 5.9.2015 Black James 15 35 20
这是一个例子,我希望看到这样的结果:
Surname Name TotalVolume Count
Black James 70 1
Doe John 200 2
Doe John 115 1
Johnson Jack 140 1
Parker Peter 115 1
总体积由三种物质(A + B + C)组成。我很乐意为每一个建议。提前谢谢。
答案 0 :(得分:3)
在子查询中计算TotalVolume
,然后使用Surname,Name和TotalVolume进行分组。
<强> SqlFiddleDemo 强>
SELECT Surname, Name, TotalVolume, COUNT(*) AS Count
FROM (
SELECT Surname, Name, Substance_A + Substance_B + Substance_C AS TotalVolume
FROM tab) AS t
GROUP BY Surname, Name, TotalVolume
或者没有子查询:
SELECT
Surname,
Name,
Substance_A + Substance_B + Substance_C AS TotalVolume,
COUNT(*) AS Count
FROM tab
GROUP BY
Surname,
Name,
Substance_A + Substance_B + Substance_C