SQL查询包括所有行

时间:2018-06-13 14:12:44

标签: mysql sql mysqli

我试图在列中添加一个列的总和,然后为我的所有行显示它。具体来说,我有一个表格,其中每一行都是一个国家,并且有一个列用一个区域标识它们。第三列是一项措施。我试图做的是对来自同一地区的措施进行总结,然后将它们展示给外部国家。

这是我目前的查询:

SELECT country, region, SUM(share) AS value_sum FROM data_xlsx_Hoja2 GROUP BY region

我知道,group by只是按区域显示,但是那些值是我希望放在每个国家/地区旁边的那些值。现在我得到的是一张表,其中包括来自每个地区的第一个国家,然后是总和。

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

我认为您的country信息比region信息更具体。

因此,您可以使用主查询返回两个信息countryregion,以及一个子查询,以返回同一地区内所有国家/地区的总和。

试试这个:

SELECT main.country, main.region,
    (SELECT SUM(sec.share)
    FROM data_xlsx_Hoja2 sec WHERE sec.region = main.region) as total
FROM data_xlsx_Hoja2 main

答案 1 :(得分:0)

您似乎想要关联 subquery

SELECT country, region, 
       (SELECT SUM(d1.share) 
        FROM data_xlsx_Hoja2 d1
        WHERE d1.region = d.region
       ) AS value_sum 
FROM data_xlsx_Hoja2 d;