2014-01-14 68 views
0

我試着運行兩個基本上相同但僅在GROUP BY方面不同的SQL查詢。爲了更清楚,以下是我的疑問。來自同一GROUP BY SQL語句的不同輸出

首先查詢:

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

如果您在結果集中需要特定且可預測的順序,請使用'ORDER BY'子句。 – SchmitzIT

回答

4

那麼,在第一個查詢中,你按年份分組。

所以你會得到一年的結果。

第二,你由一個完整的日期分組。

所以您將獲得由完整的日期一個結果行,即使你只是選擇年份(它只是顯示)

差異

目前每年只有一年。

它們是一年中的許多日期。

+0

啊哈。得到它了。好的另一件事,如果是這樣的話,爲什麼第一個查詢給了5,6,7和8年,而第二個查詢沒有給出5年......? – mfmz

+0

@ user1867016以及您的結果列表不完整,很難說... –