【发布时间】:2016-08-19 04:26:07
【问题描述】:
我有一个国家列表和一个标准化收入列,如下所示:
country income
--------------
es 500
gb 200
sg 300
id 500
de 450
我在这里试图完成的是将国家划分为不同的地理区域和全球区域。
欧盟区域将包含 es(西班牙)、gb(英国)和 de(德国)。 亚洲区域将包含 sg(新加坡)和 id(印度尼西亚)
现在我还想将每个国家/地区添加到全球地理区域中,因此全球区域将包含所有上面列出的国家
所以这会使 es(西班牙)同时属于欧盟和全球
类似地,id(印度尼西亚)将同时属于亚洲和全球
结果表会是这样的:
region country income
-------------------------
EU es 500
EU gb 200
ASIA sg 300
ASIA id 500
EU de 450
Global es 500
Global gb 200
Global sg 300
Global id 500
Global de 450
我在考虑 CASE 语句中的一些内容
SELECT
CASE WHEN country IN ('es', 'gb', 'de')
THEN 'EU'
WHEN country IN ('id', 'sg')
THEN 'ASIA'
但我不确定如何从这里获取 Global 组。这必须通过 CASE 语句完成 - 接受建议。
【问题讨论】:
-
您使用的是什么平台? oracle、db2、sql server、mysql,还有什么?
-
我目前正在使用 MySQL,但我正在寻找与产品无关的解决方案,因为它可以随时移植到 Oracle 或 Vertica。
-
mysql 基本上与其他一切都不兼容。