데이터베이스 테이블의 "select count(1) from table_name"은 무엇을 의미합니까?
실행 시select count(*) from table_name
행 수를 반환합니다.
무엇인가.count(1)
뭐 하는 거야?1
여기를 의미합니까?이거랑 똑같아요?count(*)
(실행 시 동일한 결과를 얻을 수 있습니다)
COUNT 함수에 대한 매개 변수는 각 행에 대해 평가되는 식입니다.COUNT 함수는 식이 평가하는 행 수를 null이 아닌 값으로 반환합니다.(*는 평가되지 않는 특수한 표현입니다.행의 수를 반환할 뿐입니다).
표현식에는 ALL과 DISTINCT라는 두 가지 추가 수식자가 있습니다.중복이 폐기될지 여부를 결정합니다.ALL이 기본값이기 때문에 이 예제는 카운트(ALL 1)와 동일합니다.즉, 중복은 유지됩니다.
식 "1"은 모든 행에 대해 non-null로 평가되며 중복을 제거하지 않으므로 COUNT(1)는 항상 COUNT(*)와 동일한 숫자를 반환해야 합니다.
다음은 질문에 대한 답변에 도움이 되는 링크입니다.요컨대:
count(*)는 올바른 쓰기 방법이며 count(1)는 내부적으로 OPTIMIZED TO BE count(*)입니다.
a) 1이 null이 아닌 행의 카운트 효율은
b) 행을 카운트하다
오라클의 카운트(*)와 카운트(1)의 차이는 무엇입니까?
count(*)는 모든 레코드를 카운트하는 것을 의미합니다.즉, 각 셀과 셀을 카운트하지만
count(1)는 값이 1인 유사 열을 하나 추가하고 모든 레코드의 카운트를 반환함을 의미합니다.
이것은 이 두 가지 차이와 유사합니다.
SELECT * FROM table_name and SELECT 1 FROM table_name.
네가 한다면.
SELECT 1 FROM table_name
표의 각 행에 대해 숫자 1이 표시됩니다.그렇구나count(*)
그리고.count(1)
같은 결과를 얻을 수 있습니다.count(8)
또는count(column_name)
차이가 없다.
COUNT(1)
는 기본적으로 각 행에 대해 1개의 상수 값을 카운트하는 것입니다.여기 있는 다른 사용자들이 말했듯이, 이것은COUNT(0)
또는COUNT(42)
. 다음 중 하나라도NULL
값이면 충분합니다.
http://asktom.oracle.com/pls/asktom/f?p=100:11:2603224624843292::::P11_QUESTION_ID:1156151916789
Oracle Optimizer에는 버그가 포함되어 있었습니다.그 때문에, 선택한 컬럼과 인덱스에 포함되어 있는지 어떤지에 의해서 카운트가 영향을 받게 되어, COUNT(1) 규칙이 생겨났습니다.
SELECT COUNT(1) from <table name>
같은 일을 해야 한다
SELECT COUNT(*) from <table name>
이 더 몇 수 .SELECT COUNT(*)
DB db db db 、 DB 。
SELECT COUNT(col_name) from <table name>
그러나 지정된 열에 대해 값이 지정되지 않은 행만 카운트되므로 다른 의미가 있습니다.
오라클에서 나는 이것들이 정확히 같은 의미를 가지고 있다고 믿는다.
다음과 같이 테스트할 수 있습니다.
create table test1(
id number,
name varchar2(20)
);
insert into test1 values (1,'abc');
insert into test1 values (1,'abc');
select * from test1;
select count(*) from test1;
select count(1) from test1;
select count(ALL 1) from test1;
select count(DISTINCT 1) from test1;
묻느냐에 실행한다고 도 있습니다.select count(1) from random_table;
달리다select count(*) from random_table
다른 사람들은 그들이 정확히 똑같다고 주장한다.
이 링크에서는 2개의 속도 차이가 FULL TABLE SCAN과 FAST FULL SCAN의 차이임을 나타냅니다.
언급URL : https://stackoverflow.com/questions/181272/what-does-select-count1-from-table-name-on-any-database-tables-mean
'programing' 카테고리의 다른 글
Node.js에서 Mongoose로 페이지 번호를 매기는 방법 (0) | 2023.03.17 |
---|---|
Spring Boot 어플리케이션에서 액티브 설정을 기록하려면 어떻게 해야 합니까? (0) | 2023.03.17 |
this.refs를 사용한 권장 해제 경고 (0) | 2023.03.17 |
php 파일에서 Google Chart API(Javascript) 실행 (0) | 2023.03.17 |
@ConfigurationProperties 및 @Autowired 클래스를 테스트하는 방법 (0) | 2023.03.17 |