2012-01-20 3 views
1

ANSI 표준에 따라 지원되는 Select Count SQL 문 목록이 있는지 궁금합니다. 아래의 세 가지 변형은 내가 아는 바입니다. 아래의 세 가지 모두에 where 절을 사용할 수 있습니까?ANSI Select Count SQLStatements 지원

SELECT COUNT(*) AS RowCount FROM table_name 
SELECT COUNT(ColumnName) AS RowCount FROM table_name 
SELECT COUNT(DISTINCT ColumnName) AS RowCount FROM table_name 
+0

'OVER' 절 변형도 있습니다. 'ANSI' 표준의 어떤 버전을 언급하고 있습니까? –

+0

@MartinSmith - JDBC 드라이버를 작성 중이며 일반적으로 지원되는 것이 궁금합니다. ANSI SQL 표준 또는 일반적으로 지원되는 목록이있는 다른 표준이 있는지 확실하지 않았습니다. – c12

답변

2

거의 모든 DBMS의 사용이 http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt에서 찾을 수있는 ANSI 92 표준 인 SQL 표준입니다. 124 페이지는 찾고있는 정보를 가지고 있습니다. 대부분의 DBMS는 ANSI 92 표준 외에도 뭔가를 제공하지만,이 표준은 모든 이들 중에서 가장 낮은 공통 분모입니다.

0

표준 사양은 COUNT(*)에 특별한 의미를 부여합니다. 그렇지 않은 경우 ColumnName은 구현이 정의 된 유효한 표현식입니다.

SELECT ALL와 마찬가지로
SELECT COUNT(ALL ColumnName) AS RowCount FROM table_name; 

ALL 기본이며 생략 할 수 있습니다 - 거의 항상 :

은 BTW 하나를 놓친!