我有一个数据库,其中包含与国家/地区有关的数据,简化后看起来像这样:
ID | country_id | country_ISO | var_value
1 | 1 | FR | 10
2 | 2 | BE | 15
3 | 3 | NL | 20
4 | 1 | FR | 6
5 | 2 | BE | 8
6 | 2 | BE | 12
我想获取“ var_value”值的总和,但与此同时,我想同时具有country_id和country_ISO。
我可以这样做:
SELECT
country_ISO,
SUM(var_value) AS sum_of_value
FROM
table_name
GROUP BY
country_ISO;
此查询将给我var_value和国家/地区ISO的总和,但我也想获取country_id。如何子查询/自我联接以获得(以独特的方式)与例如country_ISO相关的额外列?
答案 0 :(得分:3)
只需在GROUP BY
子句中包括该列:
SELECT country_id, country_ISO, SUM(var_value) AS sum_of_value
FROM table_name tn
GROUP BY country_id, country_ISO;
答案 1 :(得分:3)
由于country_iso
始终依赖于country_id
,因此只需将GROUP BY
扩展country_id
。
SELECT country_id,
country_iso,
sum(var_value) sum_of_value
FROM table_name
GROUP BY country_id,
country_iso;
答案 2 :(得分:1)
如果contry_id,contry_ISO与1:1匹配,则只需将contry_id,contry_ISO分组即可。
SELECT
contry_id,
country_ISO,
SUM(var_value) AS sum_of_value
FROM
table_name
GROUP BY
contry_id,
country_ISO;