GROUP BY에 행이 없을 때 COUNT() 값을 얻으려면 어떻게 해야 합니까?
RDMS : MariaDB 10.1.23
MCRE:
create table entity
(
id_entity int auto_increment,
created_at timestamp default CURRENT_TIMESTAMP,
constraint product_log_pk
primary key (id_entity)
);
INSERT INTO entity SET created_at = CURRENT_TIMESTAMP;
INSERT INTO entity SET created_at = CURRENT_TIMESTAMP;
INSERT INTO entity SET created_at = CURRENT_TIMESTAMP;
-- I would like this to return 0
SELECT IF(COUNT(e.id_entity) = 0, 0, e.id_entity)
FROM entity e
WHERE e.created_at < CURRENT_DATE - INTERVAL 1 DAY GROUP BY e.created_at;
SQLFiddle: http://sqlfiddle.com/ #!9/f32a01/1
다음 쿼리를 고려합니다.
SELECT IF(COUNT(e.some_field) = 0, 0, e.some_field)
FROM entity e
WHERE e.created_at > CURRENT_DATE - INTERVAL 1 DAY GROUP BY e.created_at
절이 GROUP BY 절을 알 수 .COUNT()
0
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
BY가 「했을 「GROUP BY」를 만족시키는 도 있습니다.e.created_at > CURRENT_DATE - INTERVAL 1 DAY
「COUNT」(0)입니다.COUNT 해야 합니까(COUNT() ).0
이??이?
그룹화는 구가 평가된 후에 수행됩니다.where 구가 모든 행을 삭제하면 그룹화할 필요가 없습니다.
당신은 조건부 집계를 원하는 것 같습니다.다음은 예를 제시하겠습니다.
name | dept | gender
-----+------+-------
jane | acc | f
john | acc | m
jack | hr | m
jake | hr | m
그리고 부서별로 모든 여성 직원을 집계하기 위한 질문:
SELECT dept, COUNT(CASE WHEN gender = 'f' THEN 1 END)
FROM employee
-- WHERE gender = ... will/could eliminate entire group(s)
GROUP BY dept
dept | count
-----+------
acc | 1
hr | 0
당당 、 한에에줄줄경 아아것 。요, 뺄게요, 뺄게요.GROUP BY
.
난 이게 뭔지 전혀 모르겠어IF()
로 되어 있다
SELECT COUNT(e.some_field)
FROM entity e
WHERE e.created_at > CURRENT_DATE - INTERVAL 1 DAY ;
i를 some_field
, , , 「 」GROUP_CONCAT()
을 한: 이 、 이 、 will 、 will 、 will 、 will will will will will will will will will will will will will will will will will will::: 。
SELECT GROUP_CONCAT(e.some_field)
FROM entity e
WHERE e.created_at > CURRENT_DATE - INTERVAL 1 DAY ;
두 행 모두 항상 1개의 행을 반환합니다.이것은, 이러한 행은 집약 쿼리이기 때문에,GROUP BY
하는 것은 " " " 입니다0
두 번째 '두 번째'는NULL
일치하는 행이 없는 경우.
'표준' 방법은
COALESCE(value, 0)
일반적으로 다음과 같이 사용됩니다.
COALESCE( ( SELECT COUNT(*) ... ), 0)
언급URL : https://stackoverflow.com/questions/60599710/how-to-get-a-count-value-when-group-by-has-no-row
'programing' 카테고리의 다른 글
VueJ: 참조 방법컴포넌트 데이터 속성에 $store (0) | 2022.10.25 |
---|---|
MariaDB 및 HAProxy(클러스터)와의 접속 문제 (0) | 2022.10.25 |
멀티프로세서 풀과 유사한 스레드 풀? (0) | 2022.10.25 |
오늘부터 날짜별로 SQL 선택 (0) | 2022.10.25 |
데이터베이스의 모든 테이블을 하나의 대조로 변환하려면 어떻게 해야 합니까? (0) | 2022.10.25 |