2014-01-14 2 views
0

기본적으로 동일한 두 가지 SQL 쿼리를 실행하려고했지만 GROUP BY의 측면에서만 다릅니다. 명확하게하기 위해, 다음은 나의 질문입니다.동일한 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

글쎄, 첫 번째 쿼리에서, 당신은 일년에 그룹화합니다.

그러면 한 해에 하나의 결과가 표시됩니다.

둘째로 전체 날짜별로 그룹화합니다.

그래서 당신은이

년 당 1 년만있다

차이 (그냥 디스플레이의) 그냥 연도를 선택하더라도 완전한 날짜별로 하나 개의 결과 행을 얻을 것이다.

일년 중 많은 날짜입니다.

+0

아하. 알았다. 또 다른 문제는, 그렇다면 왜 첫 번째 쿼리가 5,6,7,8 년을 준 반면 두 번째 쿼리는 5 년을주지 않았는가 ...? – mfmz

+0

@ user1867016 결과 목록이 완전하지 않으므로 말하기가 어렵습니다 ... –