查找经济、地区的总和

时间:2021-07-06 09:49:08

标签: oracle oracle11g oracle-sqldeveloper oracle-apex

DDL 语句表名是世界

country Economy
USA         2000
CHINA       1500
INDIA       1600
DUBAI       1000
Nepal        500
Pakistan     700

在 oracle 中显示一个查询,以便我们从这个表中重新查看这个输出

output:   Region      sum(economy)
               USA              2000
               Asia              5300         

1 个答案:

答案 0 :(得分:0)

您缺少说明哪个国家属于哪个地区的表格:

create table region
  (id_region   number constraint pk_reg primary key,
   name        varchar2(20)
  );

create table country
  (id_country  number constraint pk_cou primary key,
   id_region   number constraint fk_coureg references region (id_region),
   name        varchar2(20)
  );

然后你会

select r.name as region, 
       sum(c.economy) as sum_economy
from region r join country c on c.id_region = r.id_region
group by r.name

如果你坚持做错和硬编码区域,你在这里:

select case when country = 'USA' then 'USA' 
            else 'Asia'
       end as region,
       sum(economy) as sum_economy
from your_table
group by        
       case when country = 'USA' then 'USA' 
            else 'Asia'
       end; 

请注意,这个“解决方案”完全是错误的,我建议您按照前面所述正确操作。

相关问题