我有一张表games
,其中包含有关电脑游戏的信息。一个方面是游戏发布的区域。有些游戏已在多个地区发布,这就是为什么有三个区域列:region1
,region2
,region3
。
我想以这种方式对一系列游戏进行分组 - 无论在这三个区域的哪一列中放置相同的区域 - 我最终会得到一个不同区域的列表。
该表格的基本示例:
id | name_of_game | region1 | region2 | region3
-----------------------------------------------
1 Phoenix us fr de
2 Scramble fr uk
3 Defender ru
我想获得以下输出
region
-------
us
fr
de
uk
ru
我很难找到解决方案。
答案 0 :(得分:2)
您可以将union
用于此
select region1 as region from table
union
select region2 as region from table
union
select region3 as region from table
要获得每个地区的游戏数量,您可以使用
select region,count(*)
from(
select region1 as region,name_of_game from demo where region1 is not null
union
select region2 as region,name_of_game from demo where region2 is not null
union
select region3 as region,name_of_game from demo where region3 is not null
) t
group by region