加入两个表并按两列分组

时间:2018-05-04 05:30:17

标签: mysql

我有两个MySQL表。

用户表

id | country

发布表

id | userId | type
在Post表中我有3种类型的帖子。

'Social', 'Economic', 'Culture'

我需要对数据进行分组,以获得每种类型的帖子数。

例如。

country | social  | economic | culture
UK      | 2       | 1        | 0       
US      | 0       | 2        | 1       
LK      | 1       | 0        | 0       
IN      | 0       | 0        | 3         

我编写了以下查询,似乎只使用国家/地区对数据进行分组。我该如何移植它以便它计算帖子的type

SELECT b.country, SUM(a.type) 
FROM Post a 
INNER JOIN User b ON a.id = b.id 
GROUP BY b.country, a.type

有人能指点我吗?

1 个答案:

答案 0 :(得分:1)

SELECT b.country, 
       SUM(a.type = 'Social') as social,
       SUM(a.type = 'Economic') as economic,
       SUM(a.type = 'Culture') as culture
FROM Post a 
INNER JOIN User b ON a.id = b.id 
GROUP BY b.country

sum()加上条件为true的时间 仅按要在结果集中拥有自己的行的数据进行分组。