select count(*) from myTable where (myVariable =1)
과 같은 쿼리를 실행하면 해당 기준에 맞는 숫자가 반환됩니다. 별표를 숫자로 바꾸면 동일한 대답을 얻습니다. 여기에 SQL이 어떻게됩니까?SQL 계산 기능 작동
답변
해당 항목.
테이블에있는 행의 수는 n이 테이블의 n 번째 열을 나타낼 것입니다. n 개의 열이 없어도 작동합니다.
그러나 당신도 테이블에 관련된 아무것도에 넣어 필요가 없습니다 더 나은 가져 SELECT ('X') from Table
유효
질의 최적화 기가 올바른 것을 선택하여 이것을 보임 plan
질문에 답해 주셔서 감사합니다. 이것은 NULLS를 고려할 것인가? count (5)를 선택하고 다섯 번째 열이 NULLS로 가득 차 있다면 여전히 테이블의 행 수가 반환됩니까? – wootscootinboogie
그렇지 않습니다. 이중에서 count (5)를 선택하면 오류가 발생합니다. –
쿼리 컴파일러가이를 무시합니다. –
null이 아닌 값에 대한 카운트 검사로 null이 아닌 값을 전달할 수 있습니다. *, 필드 이름, 정적 값.
COUNT(*)
은 모든 행에 포함됩니다. yourColumn은 NULL입니다 COUNT(yourColumn)
행을 포함하지 않습니다
COUNT 함수는 를 매개 변수로 COUNT 함수 관계없이 무엇 NOT NULL 필드 (들)을 포함 동일한 결과를 반환합니다 때문에 (즉, : 대괄호 내에서) 함수의 구문을 COUNT (1)로 변경하여 데이터베이스 엔진 이 데이터 필드를 다시 가져올 필요가 없으므로 성능을 향상시킬 수 있습니다.
출처 : SQL: COUNT Function
주교 대신 대답 해 주셔서 감사합니다. – wootscootinboogie
저는 대부분의 데이터베이스가 count (*) 대 count (1)의 데이터 필드를 반환하지 않는다고 확신합니다. 이것은 데이터베이스 최적화 프로그램을위한 매우 기본적인 최적화입니다. –
작은 알려진 기능을 사용하면 특정 컬럼의 고유 수를 얻을 수 select count(distinct someColumn) from SomeTable
를 조회 할 수 있다는 것입니다. 그렇다면 당신이 분명히 선택한 칼럼에 상관 없습니다.
다른 답변은 이미 설명해 놓았습니다.
count(expression)
카운트 행 expression is not null
입니다.
count(1)
을 시도하면 1은 null이 아니므로 모든 행을 가져옵니다.
count(column_name)
을 시도하면 column_name is not null
행이 계산됩니다.
http://docs.oracle.com/cd/B10500_01/server.920/a96540/functions26a.htm#82699
당신은 같은 수를 받고있어 그 당신을 놀라게- 1. 루트 계산 기능 구현
- 2. 기능 및 작동
- 3. HOG 기능 계산
- 4. 계산 기능 1.1 장치 기능 루프에서 For
- 5. SQL 개수, 계산 Halfs!
- 6. 구성표의 꼬리 재귀 계산 기능
- 7. 약간의 계산 착오를 일으키는 기능
- 8. RoR의 계산 된 필드 (ActiveRecord 메소드로 작동)
- 9. SQL : 월간 계산
- 10. SQL : 시스템로드 통계 계산
- 11. linq sql - 집계 계산
- 12. T-SQL 계산 백분율
- 13. SQL 서버 그룹, 계산
- 14. SQL 문 계산
- 15. SQL 쿼리 : 백분율 계산
- 16. SQL 서버의 간단한 계산
- 17. SQL 서버의 통계 계산
- 18. SQL 2 테이블에서 계산
- 19. SQL 계산 (오라클)
- 20. SQL datetime 계산
- 21. SQL 쿼리의 계산
- 22. SQL : 공통 요소 계산
- 23. SQL 계산 필드를
- 24. SQL 서버 계산
- 25. SQL 표준 시간대 계산
- 26. SQL 조건부 계산
- 27. SQL 날짜 범위 계산
- 28. SQL Server 백분율 계산
- 29. ASP.NET 용 SQL 계산
- 30. emacs 자동 채우기 기능 작동 방법 수정
- 그래서 뭐 ** 당신은 ** 대신 기대했는데? –
'count()'는 매개 변수로 숫자를 사용하지 말고 필드 이름 (또는'*')을 사용합니다. – sp00m
dup http://stackoverflow.com/questions/59294/in-sql-whats-the-difference-between-countcolumn-and-count – ilanco