|
本帖最后由 lhqmccn 于 2016-10-31 14:51 编辑
想让大家帮忙,你要这样贴出可用的测试数据来,
看看下面的测试数据及结果是不是你想要的
--源数据表
CREATE TABLE TEST (ID VARCHAR2(32),DATEs DATE,a NUMBER);
--插入源数据
insert into test (ID, DATES, A) values ('50201281', to_date('01-01-2015', 'dd-mm-yyyy'), 1);
insert into test (ID, DATES, A)values ('50201281', to_date('02-01-2015', 'dd-mm-yyyy'), 2);
insert into test (ID, DATES, A)values ('50201281', to_date('03-01-2015', 'dd-mm-yyyy'), 3);
insert into test (ID, DATES, A)values ('50201281', to_date('01-01-2016', 'dd-mm-yyyy'), 4);
insert into test (ID, DATES, A)values ('50201281', to_date('02-01-2016', 'dd-mm-yyyy'), 5);
insert into test (ID, DATES, A)values ('50201281', to_date('03-01-2016', 'dd-mm-yyyy'), 6);
insert into test (ID, DATES, A)values ('50201281', to_date('01-01-2017', 'dd-mm-yyyy'), 7);
insert into test (ID, DATES, A)values ('50201281', to_date('02-01-2017', 'dd-mm-yyyy'), 8);
insert into test (ID, DATES, A)values ('50201281', to_date('03-01-2017', 'dd-mm-yyyy'), 9);
insert into test (ID, DATES, A)values ('50201282', to_date('01-01-2011', 'dd-mm-yyyy'), 10);
insert into test (ID, DATES, A)values ('50201282', to_date('02-01-2011', 'dd-mm-yyyy'), 11);
insert into test (ID, DATES, A)values ('50201282', to_date('03-01-2011', 'dd-mm-yyyy'), 12);
insert into test (ID, DATES, A)values ('50201282', to_date('01-01-2016', 'dd-mm-yyyy'), 13);
insert into test (ID, DATES, A)values ('50201282', to_date('02-01-2016', 'dd-mm-yyyy'), 14);
insert into test (ID, DATES, A)values ('50201282', to_date('03-01-2016', 'dd-mm-yyyy'), 15);
insert into test (ID, DATES, A)values ('50201282', to_date('01-01-2017', 'dd-mm-yyyy'), 16);
insert into test (ID, DATES, A)values ('50201282', to_date('02-01-2017', 'dd-mm-yyyy'), 17);
insert into test (ID, DATES, A)values ('50201282', to_date('03-01-2017', 'dd-mm-yyyy'), 18);
--得到结果
SELECT id 序号,
to_char(dates, 'mm') 月,
to_char(dates, 'dd') 日,
AVG(a) a均值,
MIN(to_char(dates, 'YYYY')) 开始年份,
MAX(to_char(dates, 'YYYY')) 结束年份,
MAX(to_char(dates, 'YYYY')) - MIN(to_char(dates, 'YYYY')) 间隔年份
FROM test
GROUP BY id, to_char(dates, 'mm'), to_char(dates, 'dd')
ORDER BY id, to_char(dates, 'mm'), to_char(dates, 'dd') |
|