2012-05-10 2 views
0

select count(*) from myTable where (myVariable =1)과 같은 쿼리를 실행하면 해당 기준에 맞는 숫자가 반환됩니다. 별표를 숫자로 바꾸면 동일한 대답을 얻습니다. 여기에 SQL이 어떻게됩니까?SQL 계산 기능 작동

+1

- 그래서 뭐 ** 당신은 ** 대신 기대했는데? –

+0

'count()'는 매개 변수로 숫자를 사용하지 말고 필드 이름 (또는'*')을 사용합니다. – sp00m

+2

dup http://stackoverflow.com/questions/59294/in-sql-whats-the-difference-between-countcolumn-and-count – ilanco

답변

1

해당 항목.

테이블에있는 행의 수는 n이 테이블의 n 번째 열을 나타낼 것입니다. n 개의 열이 없어도 작동합니다.

그러나 당신도 테이블에 관련된 아무것도에 넣어 필요가 없습니다 더 나은 가져 SELECT ('X') from Table 유효

SELECT (1) 적어도 성능을 위해 더 나은하지만 MSSQL이라고 생각의 학교가있다

질의 최적화 기가 올바른 것을 선택하여 이것을 보임 plan

+0

질문에 답해 주셔서 감사합니다. 이것은 NULLS를 고려할 것인가? count (5)를 선택하고 다섯 번째 열이 NULLS로 가득 차 있다면 여전히 테이블의 행 수가 반환됩니까? – wootscootinboogie

+0

그렇지 않습니다. 이중에서 count (5)를 선택하면 오류가 발생합니다. –

+0

쿼리 컴파일러가이를 무시합니다. –

1

null이 아닌 값에 대한 카운트 검사로 null이 아닌 값을 전달할 수 있습니다. *, 필드 이름, 정적 값.

COUNT(*)은 모든 행에 포함됩니다. yourColumn은 NULL입니다 COUNT(yourColumn) 행을 포함하지 않습니다

Refer many ways to use Count function

1

COUNT 함수는 를 매개 변수로 COUNT 함수 관계없이 무엇 NOT NULL 필드 (들)을 포함 동일한 결과를 반환합니다 때문에 (즉, : 대괄호 내에서) 함수의 구문을 COUNT (1)로 변경하여 데이터베이스 엔진 이 데이터 필드를 다시 가져올 필요가 없으므로 성능을 향상시킬 수 있습니다.

출처 : SQL: COUNT Function

+0

주교 대신 대답 해 주셔서 감사합니다. – wootscootinboogie

+0

저는 대부분의 데이터베이스가 count (*) 대 count (1)의 데이터 필드를 반환하지 않는다고 확신합니다. 이것은 데이터베이스 최적화 프로그램을위한 매우 기본적인 최적화입니다. –

0

작은 알려진 기능을 사용하면 특정 컬럼의 고유 수를 얻을 수 select count(distinct someColumn) from SomeTable를 조회 할 수 있다는 것입니다. 그렇다면 당신이 분명히 선택한 칼럼에 상관 없습니다.

다른 답변은 이미 설명해 놓았습니다.