我试图在一年内从特定的表格中进行一系列测试。这就是我到目前为止所做的:
SELECT DISTINCT TO_CHAR(test_date, 'YYYY') AS Year, SUM(yearCount)
FROM(
SELECT COUNT(test_date) AS yearCount
FROM test_record
), test_record
GROUP BY test_record.test_date
ORDER BY Year ASC;
这给了我输出:
YEAR SUM(YEARCOUNT)
---- --------------
1958 12
1991 12
1996 12
1998 12
2000 12
2001 12
2010 12
2012 12
2013 12
现在,我理解我的问题在于:SELECT COUNT(test_date) AS yearCount
,因为我在表中有12个条目,所以它显然给出了表中条目数的计数。我需要每年给出的测试次数,即输出应如下所示:
YEAR SUM(YEARCOUNT)
---- --------------
1958 1
1991 1
1996 1
1998 1
2000 1
2001 1
2010 1
2012 1
2013 4
所以基本上我的问题归结为:我如何按日期列中的年份计算? (我相信我使用的是ORACLE 7)
编辑:感谢以下帮助,我能够得到我想要的输出,但是他们都有点错误"所以我没有接受它们(对不起,如果那样的话)#39; sa Faux pas)。这是我的剧本:SELECT TO_CHAR(test_date, 'YYYY') AS Year, COUNT(test_date)
FROM test_record
GROUP BY TO_CHAR(test_date, 'YYYY')
ORDER BY Year ASC;
答案 0 :(得分:1)
您想按年份而不是考试日期进行分组。
Select count(*), to_date('YYYY',test_data) as year
From test_record
Group by to_date('YYYY',test_date)
答案 1 :(得分:1)
您可以单独进行分组,不需要子查询
SELECT TO_CHAR(test_date, 'YYYY') AS Year, COUNT(test_date)
GROUP BY TO_CHAR(test_date, 'YYYY')
ORDER BY Year ASC;