首页 > 解决方案 > 通过 SQL 查询获取分组中的相关列

问题描述

我有一个数据库,其中包含与国家相关的数据,简化后看起来像这样:

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?

标签: sqlpostgresql

解决方案


只需将该列也包含在GROUP BY子句中:

SELECT country_id, country_ISO, SUM(var_value) AS sum_of_value
FROM table_name tn
GROUP BY country_id, country_ISO;

推荐阅读