반응형
정의되지 않은 행 선택
정의되지 않은 행을 선택하는 방법은 무엇입니까?행 2가 3일 정의되지 않은 것과 같이 행 3이 1일 정의되지 않은 것입니다.나는 그들이 결과 집합에서 0이 되기를 원합니다.
+----+-----+-------+
| id | day | count |
+----+-----+-------+
| 1 | 1 | 262 |
| 1 | 2 | 685 |
| 1 | 3 | 984 |
| 2 | 1 | 692 |
| 2 | 2 | 962 |
| 3 | 2 | 355 |
| 3 | 3 | 741 |
+----+-----+-------+
편집: 선택합니다.count
1일, 2일 및 3일(전체 테이블이 아님)부터 시작하여 정의되지 않은 날짜에 0을 표시합니다.
- 우리는 모든 독특한 것을 얻을 수 있습니다.
id
값을 입력할 수 있습니다. - 위해서
day
당신은 1, 2, 3만을 원하는 것 같습니다.따라서 이러한 값은 다음을 사용하여 직접 고려할 수 있습니다.UNION ALL
. CROSS JOIN
가능한 모든 조합을 얻기 위해 그들 사이에.LEFT JOIN
부터all_combinations
에 대한 주요 테이블의 표.id
그리고.day
.- 우리는 사용할 수 있습니다.
Coalesce()
주 테이블에 일치하는 행이 없는 경우 카운트 값 0을 고려하는 함수
다음을 시도합니다.
SELECT all_combinations.id,
all_combinations.day,
COALESCE(t.count, 0) AS count
FROM
(
SELECT ids.id, days.day
FROM
(SELECT DISTINCT id FROM your_table) AS ids
CROSS JOIN
(SELECT 1 AS day UNION ALL SELECT 2 UNION ALL SELECT 3) AS days
) AS all_combinations
LEFT JOIN your_table AS t
ON t.id = all_combinations.id AND
t.day = all_combinations.day
결과:
| id | day | count |
| --- | --- | ----- |
| 1 | 1 | 262 |
| 2 | 1 | 692 |
| 3 | 1 | 0 |
| 1 | 2 | 685 |
| 2 | 2 | 962 |
| 3 | 2 | 355 |
| 1 | 3 | 984 |
| 2 | 3 | 0 |
| 3 | 3 | 741 |
언급URL : https://stackoverflow.com/questions/53267722/selecting-rows-that-are-not-defined
반응형
'sourcecode' 카테고리의 다른 글
Gitlab CI + DinD + MySQL 서비스 권한 문제 (0) | 2023.09.05 |
---|---|
도커 파일의 "볼륨" 지침 이해 (0) | 2023.09.05 |
프로그래밍 방식으로 UI 세그먼트 컨트롤을 전환하는 방법은 무엇입니까? (0) | 2023.09.05 |
지정된 Laravel URL로 리디렉션 (0) | 2023.09.05 |
MariaDB 기반 모델링 도구 (0) | 2023.09.05 |