mysql - 如何在同一个结果表中包含来自两个查询的信息?

标签 mysql sql subquery

我有以下问题:

select year, avg(value) as winter_avg_Miami from AP_DATA where substring(series_id, 8) ='killowatts' and  substring(series_id, 3,5) = 'Miami' and period IN ('M10','M11','M12') group by year;
select year, avg(value) as winter_avg_notMiami from AP_DATA where substring(series_id, 8) = 'killowatts' and  substring(series_id, 3,5) != 'Miami' and period IN ('M10','M11','M12') group by year;

我想要做的不是得到两个不同的表,一个像:

year       winter_avg_Miami
2000             28.1
2001             30.2

还有另一个表:

year        winter_avg_notMiami
2000             40.1
2001             50.2

我只想将所有信息放在一张表中,例如:

year       winter_avg_Miami  winter_avg_notMiami
2000             28.1              40.1 
2001             30.2              50.2

我该如何编写查询才能完成此任务?

最佳答案

您可以在 avg 聚合中使用 case 语句:

select year, 
   avg(case when substring(series_id, 3,5) = 'Miami' then value end) as winter_avg_Miami,
   avg(case when substring(series_id, 3,5) != 'Miami' then value end) as winter_avg_notMiami 
from AP_DATA 
where substring(series_id, 8) ='killowatts'
    and period IN ('M10','M11','M12') 
group by year

关于mysql - 如何在同一个结果表中包含来自两个查询的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27236586/

相关文章:

php - 如何在每个租户都有多个用户的 laravel 中拥有 Multi-Tenancy 数据库?

java - 如何通过 JDBC 使用包含问号 "?"的 PostgreSQL JSON(B) 运算符

java - 使用准备好的语句动态更改行的更新语句

c# - 如何使用 Microsoft Visual Studio 将一个查询插入 C# 中的另一个查询?

mysql - 选择每个人的最后一条记录

mysql - Spring Boot Rest 服务在正常工作数小时后引发 JPA 连接错误

php - 需要有关音乐网站逻辑/显示问题的建议

php - 这个查询有什么问题?

mysql - 在具有相同 id 的另一个表上查询数据(行)并仅使用一个数据删除结果

mysql - 试图将 MySQL 数据放入 d3 的嵌套 json 文件中?