[SQL] 더 정확 - 카운트 (열 이름) 대 (*) 계산? [복제]
SQL더 정확 - 카운트 (열 이름) 대 (*) 계산? [복제]
이 두 가지 예에서와 같이 수 (열 이름) 대 COUNT (*)를 할 경우이 차이를 만들 수 있습니까?
그 의미가 있다면, 그것은 집계 함수 인의 개념과 더 나은 내 마음에 맞는 것 때문에 난 항상 쓰기 COUNT (*)하는 경향이있다.
하지만 확실히 내가하지보다 더 자주 *없이 작성 예제 코드를 참조하는 경향이 기술적으로 최선의 경우 아니에요.
카운트(*):
select customerid, count(*), sum(price)
from items_ordered
group by customerid
having count(*) > 1;
비교 횟수 (컬럼 명) :
SELECT customerid, count(customerid), sum(price)
FROM items_ordered
GROUP BY customerid
HAVING count(customerid) > 1;
해결법
-
==============================
1.COUNT (*) 또는 COUNT (열)의 사용은 원하는 출력 만에 근거한다.
COUNT (*) 또는 COUNT (열)의 사용은 원하는 출력 만에 근거한다.
-
==============================
2.이것은 MySQL로 적용됩니다. 나는 다른 사람에 대해 확실하지 않다.
이것은 MySQL로 적용됩니다. 나는 다른 사람에 대해 확실하지 않다.
차이점은 :
따라서 (*) COUNT 것은 당신이 무엇을 사용해야합니다. 당신의 MyISAM을 사용하지 않고이 경우 WHERE 절, 다음 옵티마이는 짝수 행의 수는 이미 캐시되어 있기 때문에, 테이블 볼 필요가 없습니다.
-
==============================
3.이 식별자의 경우 그때는 아마 중요하지 않습니다 (비 NULL을 보장).
이 식별자의 경우 그때는 아마 중요하지 않습니다 (비 NULL을 보장).
그러나, 열에 비 NULL 값의 카운트가 반환 COUNT (열)에서의 COUNT (*) 및 일반 COUNT (열)의 차이가있다. 고유 비 - NULL 값의 수를 반환 COUNT (DISTINCT 열) 변형도 있습니다.
-
==============================
4.일반적으로는 동일하지만 세부 AFAIK "COUNT (*)"더 나은 B / C "수 (기둥 이름)"입니다 힘 DB는 열 이름 (하지만 필요하지만)를 참조하기위한 좀 더 많은 코드를 실행합니다.
일반적으로는 동일하지만 세부 AFAIK "COUNT (*)"더 나은 B / C "수 (기둥 이름)"입니다 힘 DB는 열 이름 (하지만 필요하지만)를 참조하기위한 좀 더 많은 코드를 실행합니다.
-
==============================
5.예, 성능 가능한 차이가있다. 쿼리 및 해당 테이블의 인덱스에 따라, 대신 데이터를 테이블에가는 인덱스의 수를 얻기 위해 더 빨리 할 수 있습니다. 따라서 당신은 아마 대신 *를 사용하는 필드 이름을 지정해야합니다.
예, 성능 가능한 차이가있다. 쿼리 및 해당 테이블의 인덱스에 따라, 대신 데이터를 테이블에가는 인덱스의 수를 얻기 위해 더 빨리 할 수 있습니다. 따라서 당신은 아마 대신 *를 사용하는 필드 이름을 지정해야합니다.
from https://stackoverflow.com/questions/3003457/count-vs-countcolumn-name-which-is-more-correct by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 서버, 분할 0을 반환 (0) | 2020.03.28 |
---|---|
[SQL] 행으로 전체 데이터베이스에 DataTable을 한 번에 대신 행입니까? (0) | 2020.03.28 |
[SQL] 어떻게 특정 인덱스를 사용하는 포스트 그레스를 강요하는 걸까? (0) | 2020.03.28 |
[SQL] T-SQL의 날짜 함수를 사용하여 가장 가까운 분에 가까운 시간을 반올림 (0) | 2020.03.28 |
[SQL] SQL 날짜에서만 연도와 월을 얻기 (0) | 2020.03.28 |