当前位置: 代码迷 >> Oracle开发 >> oracle 统计查询,该如何解决
  详细解决方案

oracle 统计查询,该如何解决

热度:90   发布时间:2016-04-24 06:28:43.0
oracle 统计查询

CREATE TABLE `areastatis` (
`id`  int(11) NOT NULL  ,
`area`  varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`date`  date NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)
BEGIN;
INSERT INTO `areastatis` VALUES ('1', '中国', '2015-03-27'), ('2', '美国', '2015-03-11'), ('3', '日本', '2013-06-19'), ('4', '中国', '2014-06-10'), ('5', '美国', '2010-06-16');
COMMIT;



数据表情况:



统计后结果:


说明:对国家进行分组统计2015年和2014年记录数。
注:为了方便,,创建表的语句是mysql的~
------解决思路----------------------

SELECT AREA,
SUM(CASE WHEN YEAR(DATE)='2015' THEN 1 ELSE 0 END) `2015`,
SUM(CASE WHEN YEAR(DATE)='2014' THEN 1 ELSE 0 END) `2014`
FROM areastatis 
GROUP BY AREA;

------解决思路----------------------
SELECT AREA,
    SUM(CASE WHEN to_char(a_d,'yyyy')='2015' THEN 1 ELSE 0 END) a2015,
    SUM(CASE WHEN to_char(a_d,'yyyy')='2014' THEN 1 ELSE 0 END)  a2014
FROM aa 
GROUP BY AREA;
  相关解决方案