mysql count count distinct with examples
예제를 통해 다양한 형태의 MySQL COUNT 함수 사용법에 대해 알아보십시오.
COUNT는 간단한 집계 함수이지만 매우 효과적이고 널리 사용됩니다. 간단히 말해서 주어진 SELECT 쿼리 및 기준에 대해 행 수를 계산하는 데 사용됩니다.
이 자습서에서는 간단한 COUNT, 조건이있는 COUNT, DISTINCT가있는 COUNT, GROUP BY가있는 COUNT 등의 구문과 사용법을 설명합니다.
테스트의 다른 유형은 무엇입니까
학습 내용 :
다양한 유형의 MySQL COUNT
유형 | 기술 | 통사론 |
---|---|---|
카운트(*) | COUNT (*) 함수는 번호를 반환합니다. NULL 및 중복 값을 포함하는 행을 포함하여 SELECT 문에 의해 검색된 행 수 | {tableName}에서 COUNT (*) 선택 |
COUNT (표현식) | COUNT (expression)는 expression이 null이 아닌 값을 계산합니다. 표현식은 열 이름과 같은 단순한 것일 수도 있고 IF 함수와 같은 복잡한 표현식 일 수도 있습니다. | {tableName}에서 SELECT COUNT (표현식) |
COUNT (DISTINCT 표현식) | COUNT (DISTINCT 표현식)-DISTINCT 키워드는 표현식에 대해 고유 한 널이 아닌 값만 계산합니다. 예를 들면 -COUNT (DISTINCT customerName)-고객 이름에 대해 고유 한 값이있는 행만 계산합니다. | {tableName}에서 SELECT COUNT (DISTINCT 표현식) |
MySQL COUNT 예
테스트 데이터
MySQL COUNT 함수에 대한 예제로 다음 테이블과 데이터를 사용합니다.
테이블 :
# 1) Product_Details
다양한 제품의 세부 정보를 매장에 저장
- product_id – INT
- product_name – VARCHAR
- 가격 – DECIMAL
- category_id – INT (FOREIGN KEY – Category_Details 테이블의 ID)
# 2) Category_Details :
- category_id : INT
- category_name : VARCHAR
아래 쿼리를 사용하여 테이블을 만들고 더미 데이터를 삽입 해 보겠습니다.
CREATE TABLE `product_details` ( `product_id` int NOT NULL, `product_name` varchar(100), `price` decimal(5,2), `category_id` int, FOREIGN KEY (category_id) REFERENCES category_details(category_id), PRIMARY KEY(product_id) ) CREATE TABLE `category_details` ( `category_id` int NOT NULL, `category_name` varchar(100), PRIMARY KEY(category_id) ) INSERT INTO `category_details` (`category_id`,`category_name`) VALUES (1,'FMCG'),(2,'FURNITURE'),(3,'FASHION'),(4,'APPLIANCES'),(5,'ELECTRONICS'); INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (1,'Biscuits',0.5,1),(2,'Chocolates',1,1), (3, 'Washing Powder',5,1),(4, 'Apple IPhone', 500,5), (5, 'Batteries',2,5),(6,'Floor cleaner',2.5,1),(7,'Jeans- Levis',100,1),(8,'Mixer grinder',50,4),(9,'Capsicum',2,1),(10,'Sugar',1,1),(11,'Study Table',50,2);
위에서 생성 된 테스트 데이터가있는 표의 이미지를 참조하십시오.
Product_Details 테이블
Category_Details 테이블
단순 COUNT
이 섹션에서는 가장 간단한 방법으로 COUNT 함수를 살펴 보겠습니다.
COUNT를 사용하여 NULL 또는 DISTINCT 검사없이 행 수를 반환합니다.
SELECT COUNT(*) FROM product_details;
산출:
카운트(*) |
---|
열한 |
위의 쿼리를 사용하여 select 문에 대해 반환 된 행 수를 얻습니다.
조건이있는 COUNT 개
이제 조건 또는 열 값과 함께 COUNT 함수를 사용합니다.
예: 아니오를 세고 싶다고 가정합시다. 제품 이름에 널이 아닌 값이없는 행의 수입니다.
product_name (또는 주어진 열 이름)을 COUNT 함수의 표현식으로 추가 할 수 있습니다. 그러면 NON NULL product_name 행을 갖는 행 수가 생성됩니다.
SELECT COUNT(product_name) FROM product_details;
이 경우 출력은 11이됩니다 (모든 테스트 데이터에 이미 product_name 열에 대한 값이 있으므로).
산출:
COUNT (제품 _ 이름) |
---|
열한 |
product_name에 NULL 값이있는 새 행을 추가해 보겠습니다.
INSERT INTO `product_details` (`product_id`,`product_name`,`price`,`category_id`) VALUES (12,NULL,0.5,1);
SELECT COUNT(product_name) from product_details;
위의 COUNT 쿼리는 NON NULL product_name을 가진 모든 행의 개수를 반환합니다.
product_name이 NULL 인 행을 삽입 했으므로 결과에 반환되지 않습니다. 따라서 출력은 여전히 11 행입니다.
Java에서 이중 연결 목록을 구현하는 방법
산출:
COUNT (제품 _ 이름) |
---|
열한 |
DISTINCT로 COUNT 개
이전 예에서는 표현식과 함께 COUNT 함수를 사용했습니다. 또한 표현식을 DISTINCT 명령과 결합하여 UNIQUE 인 모든 NON NULL 값을 가져올 수도 있습니다.
product_details 테이블에서 DISTINCT category_id를 가져 오겠습니다.
SELECT COUNT(DISTINCT category_id) from product_details;
산출:
COUNT (DISTINCT category_id) |
---|
4 |
위에서 볼 수 있듯이 출력은 4이며 총 개수를 나타냅니다. product_details 테이블에있는 category_id의
GROUP BY로 COUNT
GROUP BY와 함께 COUNT를 사용하려는 예를 살펴 보겠습니다. 이는 그룹화 된 열에 대해 COUNT를 얻고 대상 그룹화 된 열의 다른 값에 따라 데이터를 분석 할 수있는 중요한 조합입니다.
예를 들면 : 아니오를 찾으십시오. product_details 테이블의 각 카테고리에 대한 제품 수
SELECT category_id, COUNT(*) FROM product_details GROUP BY category_id;
category_id | 카운트(*) |
---|---|
1 | 7 |
두 | 1 |
4 | 1 |
5 | 두 |
위에서 볼 수 있듯이 각 category_id에 대해 COUNT (*) 열은 각 category_id에 속하는 행 수를 나타냅니다.
IF로 COUNT
COUNT 함수 내에서 IF 조건을 사용하는 예를 살펴 보겠습니다. COUNT 함수 내에 IF 표현식을 배치하고 값을 거짓 조건에 대해 NULL로 설정하고 참 조건에 대해 널이 아닌 값을 설정할 수 있습니다.
모든 NON NULL 값은 COUNT 함수가있는 단일 행으로 계산됩니다.
예를 들면 : COUNT 기능을 사용하여 20 $ 범위의 모든 제품을 찾습니다.
SELECT COUNT(IF(price >0 AND price<20, 1, NULL)) AS count_less_than_20 FROM product_details;
산출:
count_less_than_20 |
---|
7 |
위의 쿼리에서 가격 범위가 0에서 20 사이 인 모든 제품의 COUNT를 얻었습니다. FALSE 조건의 경우 다른 열 값에 대해 행을 평가할 때 계산되지 않는 값을 NULL로 설정했습니다. .
조인으로 카운트
COUNT는 JOIN 문에도 사용할 수 있습니다. COUNT는 아니오에 적용됩니다. 단일 테이블 또는 JOINS를 사용하는 여러 테이블에서 작동하는 쿼리 조합과 함께 사용할 수 있습니다.
예: product_details 및 category_details 테이블을 모두 조인하고 product_details 테이블에서 category_name별로 개수를 찾습니다.
SELECT category_name, COUNT(category_name) from product_details pd INNER JOIN category_details cd ON cd.category_id = pd.category_id GROUP BY category_name;
산출:
category_name | COUNT (카테고리 _ 이름) |
---|---|
FMCG | 7 |
가구 | 1 |
가전 제품 | 1 |
전자 | 두 |
팁과 트릭
COUNT 함수의 결과를 표시하는 열에 대해 열 별칭 사용 : COUNT 함수와 함께 열 별칭을 사용하여 COUNT 함수의 결과를 표시하는 열에 대해 사용자 정의 열 이름을 가질 수 있습니다.
예를 들면 : category_details 테이블의 범주 수를 계산하고 결과 열의 이름을 category_count로 지정한다고 가정하면 아래 쿼리를 사용할 수 있습니다.
SELECT COUNT(*) as category_count from category_details;
산출:
category_count |
---|
5 |
자주 묻는 질문
Q # 1) MySQL에서 COUNT 기능을 어떻게 사용하나요?
경험이 풍부한 PDF에 대한 PL SQL 인터뷰 질문 및 답변
대답: COUNT 함수는 3 가지 방식으로 사용할 수있는 집계 함수입니다.
- COUNT (*) – 이것은 SELECT QUERY에서 반환 된 모든 행을 COUNT 개합니다.
- COUNT (표현식) – 이것은 표현식에 대한 모든 NON NULL 값을 COUNT합니다.
- COUNT (DISTINCT 표현식) – 이것은 표현식에 대해 모든 NON NULL 및 UNIQUE 값을 COUNT합니다.
Q # 2) SQL에서 Count (*)와 Count (1)의 차이점은 무엇입니까?
대답: 두 명령문 모두 동일한 방식으로 작동합니다. MySQL의 COUNT 정의에서 괄호 () 안의 모든 것은 표현식이며 NON NULL 값은 1로 계산됩니다.
따라서이 경우 *와 1은 모두 NON NULL로 처리되고 동일한 결과가 반환됩니다. 즉, 아래 두 쿼리의 결과가 동일합니다.
SELECT COUNT(*) from product_details; SELECT COUNT(1) from product_details;
결론
이 튜토리얼에서는 COUNT 함수와 MySQL에서 제공하는 다양한 변형에 대해 배웠습니다.
또한 COUNT를 GROUP BY와 결합하고 COUNT 함수 내에서 IF 함수를 작성하는 등 다양한 시나리오에서 COUNT를 사용하는 방법도 살펴 보았습니다.
COUNT 함수는 MySQL에서 가장 중요하고 널리 사용되는 함수 중 하나이며 하나 이상의 테이블에 대해 지정된 조건에 따라 데이터를 집계하는 데 주로 사용됩니다.
추천 도서
- MySQL ALTER TABLE-MySQL에서 테이블에 열을 추가하는 방법
- MySQL CONCAT 및 GROUP_CONCAT 함수 (예제 포함)
- MySQL CREATE USER : MySQL에서 새 사용자를 만드는 방법
- MySQL JOIN 튜토리얼 : 내부, 외부, 십자가, 왼쪽, 오른쪽 및 자기
- MySQL LIKE-구문 및 사용 예제가 포함 된 자습서
- MySQL GROUP BY 절-예제가 포함 된 자습서
- MySQL 하위 문자열 및 Substring_Index 함수 예제
- MySQL Create View Tutorial with Code Examples