根据引用对数据进行分组 Table

Grouping Data Based on Reference Table

的数据table:

idProv  Province
1       JT
2       JB
3       BT

城市的数据table:

idCity  IdProv  City
  1     1       BL  
  2     1       ML  
  3     1       MD  
  4     2       CB  
  5     2       TM  
  6     3       YK  
  7     3       SM  

数据 数据 table:

idData  idCity  population  data1   data2
1       1       100         200     200
2       2       100         200     300
3       3       50          100     150
4       4       20          10      20
5       5       20          20      40
6       6       50          200     400
7       7       50          100     200

我想对每个省的数据 table 中的数据进行分组。

输出应该是:

Province    population  data1   data2
JT          250         500     750
JB          40          30      60
BT          100         300     600

SQL FIDDLE

使用 INNER JOIN 合并 3 个表,并得到每个列的 SUM,例如 populationdata1data2。然后我应用了 GROUP BYORDER BY 以获得您想要的结果。请参阅下面的查询和演示:

SELECT 
      Province, 
      SUM(population) AS Population, 
      SUM(data1) AS Data1, 
      SUM(data2) AS Data2
FROM data A 
INNER JOIN City B ON A.idCity=B.idCity
INNER JOIN Province C ON B.Idprov=C.Idprov
GROUP BY Province
ORDER BY Province DESC

SQL FIDDLE DEMO HERE