来自相同GROUP BY SQL语句的不同输出

时间:2014-01-14 07:55:26

标签: sql

我尝试过运行两个基本相同的SQL查询,但只是在GROUP BY方面有所不同。为了更清楚,以下是我的疑问。

首先查询:

SELECT EXTRACT(YEAR FROM tarikh_lulus) AS Tahun, COUNT(*) AS Jumlah 
FROM association 
GROUP BY Tahun

第一个查询给了我以下结果

Tahun   Jumlah
0   60
0   1464
5   1
6   2
7   1
8   2
1970    3
1998    431
1999    206
2000    77
2001    97
2002    104
2003    123
2004    59
2005    1
2006    8
2007    162
2008    173
2009    498
2010    620
2011    915
2012    911
2013    602

第二个问题:

SELECT EXTRACT(YEAR FROM tarikh_lulus) AS Tahun, COUNT(*) AS Jumlah 
FROM association 
GROUP BY tarikh_lulus

第二个查询提供了以下内容:

Tahun   Jumlah
0   60
1970    3
1998    16
1998    1
1998    36
1998    1
1999    8
1999    14
1999    3
1999    12
2000    1
2000    5
2001    4
2001    1
2001    7
2002    3
2002    2
2002    1
2002    3
2003    7
2003    3
2003    1
2004    1
2005    1
2007    1
2007    1
2007    2
2007    1
2008    1
2008    2
2008    1
2008    11
2009    1
2009    26
2009    4
2010    47
2010    71
2010    6
2010    52
2010    1
2011    7
2011    32
2011    10
2011    15
2011    1
2011    1
2011    38
...

为什么结果不同?据我所知,它按同一列分组?

1 个答案:

答案 0 :(得分:4)

好吧,在第一次查询中,您按年份分组。

因此,您将逐年获得一个结果。

第二,你按完整的日期分组。

因此,即使您只选择年份(它只是显示),您将按完整日期获得一个结果行

<强>差分

每年只有一年。

一年中有很多日期。