SQL查询从一个列中选择数据,根据年份分为两列,删除NULL



我需要一分为二的列来分配列的帮助,具体取决于数据来自。

SELECT DISTINCT MONTH,
(SELECT hwater 
 FROM test 
 WHERE      (ID = A.ID) 
    AND (year = 2015)) AS `2015`,
(SELECT hwater 
 FROM test 
 WHERE      (ID = A.ID) 
    AND (year = 2016)) AS `2016`
FROM test AS A 
WHERE A.year = 2015 OR A.year = 2016

sql-fiddle

2015列将在最初的9个月内人口组成,而2016列则为null,在2016年第二个9个月之后,2015年Null我想在2015年与2015年相同。

month   2015    2016
1       13      65
2       22      67
3       30      69
4       37      74
5       43      84
6       49      91
7       52      91
8       60      96
9       60      102

我按月尝试了小组,这导致仅显示2015年的结果,而2016年为null

该计划是将此数据用作区域图表的数组来视觉上比较梯度。

预先感谢。

尝试使用案例表达式:

SELECT MONTH,
       MAX(CASE WHEN year = 2015  THEN hwater ELSE 0 END) as `2015`,
       MAX(CASE WHEN year = 2016  THEN hwater ELSE 0 END) as `2016`       
FROM test AS A 
WHERE A.year = 2015 OR A.year = 2016
GROUP BY MONTH
ORDER BY MONTH

sqlfiddle demo

相关内容

  • 没有找到相关文章

最新更新