我正在尝试对特定行的值进行平均,但对所有行的总和进行求和。
我有两个表格,一个名为exchanges
,另一个名为valid_country
。
exchanges
+-----------+----------+--------------+----------+--------+
| id | ref | country | value | volume |
+-----------+----------+--------------+----------+--------+
| 1 | 1029 | DE | 1 000 | 100 |
+-----------+----------+--------------+----------+--------+
| 2 | 1029 | US | 2 000 | 250 |
+-----------+----------+--------------+----------+--------+
| 3 | 1029 | FR | 3 500 | 300 |
+-----------+----------+--------------+----------+--------+
| 4 | 1053 | UK | 1 200 | 110 |
+-----------+----------+--------------+----------+--------+
| 5 | 1029 | RU | 900 | 70 |
+-----------+----------+--------------+----------+--------+
这张表格包含许多参考文献(ref),它们来自不同的国家,拥有不同的价值和数量。 valid_country
+--------------+--------------+
| ref | country |
+--------------+--------------+
| 1029 | US |
+--------------+--------------+
| 1029 | RU |
+--------------+--------------+
| 1053 | UK |
+--------------+--------------+
这个表格列出了所有可以计算平均值的“好”国家。
我想得到的查询结果是:
+----------+------------+-------------+
| ref | AVG(value) | SUM(volume) |
+----------+------------+-------------+
| 1029 | 1 450 | 720 |
+----------+------------+-------------+
| 1053 | 1 200 | 110 |
+----------+------------+-------------+
首先,参考文献是
GROUP BY
。
在表格有效国家的影响下,参考文献1029应该对美国和俄罗斯的值进行AVERAGE
,但对所有国家的数量进行SUM
。
参考文献1053也是同样的情况,但由于只有一行,所以很容易处理。
这里有一个小的Fiddle。SQL请求是错误的,因为它将所有国家的平均值计算了出来,而不仅仅是正确的那个。