반응형
CASE 및 GROUP BY 결과에서 새 열 만들기
이런 테이블이 있어요. 테이블이라고 해요.test
:
+------------------------+--------+
| id_laporan_rekomendasi | status |
+------------------------+--------+
| 1 | 2 |
| 1 | 2 |
| 1 | 2 |
| 1 | 3 |
| 2 | 2 |
| 2 | 2 |
| 2 | 2 |
| 2 | 3 |
| 3 | 2 |
| 3 | 3 |
| 4 | 2 |
| 5 | 2 |
| 5 | 3 |
| 6 | 2 |
+------------------------+--------+
그룹화 기준id_laporan_rekomendasi
컬럼에 있을 때 새 컬럼을 만듭니다.status
가치가 있다3
따라서 가치가 없는 경우3
열 상태에서 값은 다음과 같습니다.0
단, 가치가 있는 경우3
보다1
.
결과는 이랬을 것으로 예상합니다.
+------------------------+------+
| id_laporan_rekomendasi | test |
+------------------------+------+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 0 |
| 5 | 1 |
| 6 | 0 |
+------------------------+------+
나는 이 쿼리를 시도했다.
SELECT t1.id_laporan_rekomendasi,
COUNT(distinct case when t1.status = 3 then 1 else 0 end) as test
FROM test t1
GROUP BY t1.id_laporan_rekomendasi
하지만 나는 아래와 같은 결과를 얻었다.
+------------------------+------+
| id_laporan_rekomendasi | test |
+------------------------+------+
| 1 | 2 |
| 2 | 2 |
| 3 | 2 |
| 4 | 1 |
| 5 | 2 |
| 6 | 1 |
+------------------------+------+
누가 이 테이블 옮기는 것 좀 도와줄 수 있나요?
거의 다 왔어.MariaDB에서는 이를 다음과 같이 단순화할 수 있습니다.
SELECT t1.id_laporan_rekomendasi,
MAX( t1.status = 3 ) as test
FROM test t1
GROUP BY t1.id_laporan_rekomendasi;
MariaDB(및 MySQL)는 부울식을 숫자로 처리하며 true는 "1"이고 false는 "0"입니다.그러니까 이게 네가 원하는 거야
언급URL : https://stackoverflow.com/questions/49235114/make-a-new-column-based-from-case-and-group-by-result
반응형
'source' 카테고리의 다른 글
"접속 실패:php 함수의 'root'@'localhost' 사용자(암호: YES 사용)에 대한 액세스가 거부되었습니다. (0) | 2023.02.06 |
---|---|
ubuntu 12.04의 nodejs 대 노드 (0) | 2023.02.06 |
Python에서 중복된 dict in 목록 제거 (0) | 2023.02.06 |
ballerina.io SQL LIKE 스테이트먼트 (0) | 2023.02.06 |
Java 8: Java.util.function의 TriFunction(및 kin)은 어디에 있습니까?아니면 대체방법이 뭐죠? (0) | 2023.02.06 |