请教一个中级的sql

疯魔症 2016-04-01 11:28:57
表结构及数据如下:
|date |City |weather |
|2016-3-1 |北京 |晴 |
|2016-3-1 |上海 |晴 |
|2016-3-2 |北京 |阴 |
|2016-3-2 |上海 |阴 |
需要查询出的结果如下:
|城市 |晴 |阴 |
|北京 |2 |2 |
|上海 |2 |2 |

本人确实没弄不出来,只会一些基本的select, where,count, inner join啥的。
...全文
273 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
疯魔症 2016-06-07
  • 打赏
  • 举报
回复
谢谢大家了,需要用sum求和,case判断,谢谢了 自己真是不熟悉这些
悟空的小弟 2016-05-26
  • 打赏
  • 举报
回复


编辑不了啊,给你截图了
按月查询的话在FROM TEST001 where 后加日期范围就行了
m_listbox 2016-05-22
  • 打赏
  • 举报
回复
select 城市名,coalesce(a.天数,0) 晴,coalesce(b.天数,0) 阴 from 城市表 left join (select 城市,count(*) 天数 from 表1 where 表1.天气='晴‘ group by 城市) a on a.城市=城市表.城市名 left join (select 城市,count(*) 天数 from 表1 where 表1.天气='阴‘ group by 城市) b on b.城市=城市表.城市名
qq_34787558 2016-04-27
  • 打赏
  • 举报
回复
参考http://blog.csdn.net/xulei_19850322/article/details/4445148
qq_34787558 2016-04-27
  • 打赏
  • 举报
回复

create table test1 (
date varchar(10),
city varchar(20),
weather varchar(20)
);

insert into test1 VALUES ('2016-3-1','北京','晴');
insert into test1 VALUES ('2016-3-1','上海','晴');
insert into test1 VALUES ('2016-3-2','北京','阴');
insert into test1 VALUES ('2016-3-2','上海','阴');
insert into test1 VALUES ('2016-3-3','北京','雨');
insert into test1 VALUES ('2016-3-3','上海','阴');
insert into test1 VALUES ......

select city as 城市,
max(CASE WHEN date = '2016-3-1' THEN TEST1.weather END) as time1,
max(CASE WHEN date = '2016-3-2' THEN TEST1.weather END) as time2,
max(CASE WHEN date = '2016-3-3' THEN TEST1.weather END) as time3
--日期有几个就迭代几个,有人能想出点简单的方法没?
from TEST1 group by city;


疯魔症 2016-04-27
  • 打赏
  • 举报
回复
查询条件如果是一个月内的,各城市晴的天数,阴天的天数。貌似一楼的查询不行
qq_34787558 2016-04-25
  • 打赏
  • 举报
回复

create table test1 (
date   varchar(10),
city    varchar(20),
weather  varchar(20)
);

insert into test1 VALUES ('2016-3-1','北京','晴');
insert into test1 VALUES ('2016-3-1','上海','晴');
insert into test1 VALUES ('2016-3-2','北京','阴');
insert into test1 VALUES ('2016-3-2','上海','阴');

select city as 城市,
max(CASE WHEN date = '2016-3-1'  THEN date else ''  END) as 晴 ,
max(CASE WHEN date = '2016-3-2'  THEN date else ''  END) as 阴
from TEST1 group by city

图片上传不了,就不截图了。 但是感觉哪里好像不对,求指点.

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧