代码之家  ›  专栏  ›  技术社区  ›  Yorian

按SQL查询获取组中的相关列

  •  4
  • Yorian  · 技术社区  · 6 年前

    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\u value”的值之和,但是我想得到country\u id以及country\u ISO。

    我可以做到:

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

    这个查询将给出var\u值和country ISO的总和,但是我还想获得country\u id。如何子查询/自连接以获得与例如country\u ISO相关的额外列(以唯一的方式)?

    3 回复  |  直到 6 年前
        1
  •  3
  •   sticky bit    6 年前

    country_iso country_id 不管怎样,只要延长 GROUP BY 通过 .

    SELECT country_id,
           country_iso,
           sum(var_value) sum_of_value
           FROM table_name
           GROUP BY country_id,
                    country_iso;
    
        2
  •  3
  •   Yogesh Sharma    6 年前

    GROUP BY 条款:

    SELECT country_id, country_ISO, SUM(var_value) AS sum_of_value
    FROM table_name tn
    GROUP BY country_id, country_ISO;
    
        3
  •  1
  •   develtype    6 年前

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