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;