在MySQL查询中添加新的i新列

时间:2017-04-13 19:03:40

标签: mysql sql

我是MySQL中的新手,我有一个包含列

的表
+---------------------+-------------+
|        Date         | Temperature |
+---------------------+-------------+
| 2016-01-01 00:00:00 | 10,1        |
| 2016-01-02 00:00:00 | 10,2        |
| ...                 | ...         |
| 2017-01-01 00:00:00 | 12,1        |
| 2017-01-02 00:00:00 | 12,5        |
+---------------------+-------------+

我想收到结果

+--------+------+------+
|  Date  | 2016 | 2017 |
+--------+------+------+
| 01 Jan | 10,1 | 12,1 |
| 02 Jan | 10,2 | 12,5 |
| ...    | ...  | ...  |
+--------+------+------+

我想使用子查询,但子查询可以有1行。有人可以帮我写出正确的查询吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试以下内容:

select d.fdate, t1.t, t2.t
from
(select distinct month(d) as month, day(d) as day, DATE_FORMAT(d, '%e %b') as fdate from h) as d
left outer join
(select DATE_FORMAT(d, '%e %b') as fdate, t from h where year(`d`) = 2016) as t1 on (d.fdate = t1.fdate)
left outer join
(select DATE_FORMAT(d, '%e %b') as fdate, t from h where year(`d`) = 2017) as t2 on (d.fdate = t2.fdate)
order by d.month, d.day

当然会更改列/表名称

演示http://www.sqlfiddle.com/#!9/920ea2/2

答案 1 :(得分:0)

使用CASE语句

p1