Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- WordPress
- lightsail
- port닫기
- PostgreSQL
- 리스트중복값
- 권한정책
- listnull
- anymatch메서드
- route53
- instance생성
- 3tierarchitecture
- mybatis
- stereotypeannotation
- wordpress블로그
- Java
- db
- awsconsole
- Annotation
- AWS
- 열려있는포트
- Spring
- 리스트중복제거
- conponent
- ansible
- enumtype
- 널포인터에러
- string_agg()
- 중복제거
- 지옥같은git
- enum
Archives
- Today
- Total
Anyway
[DB] postgresql Count 함수 사용하기 본문
SELECT
COUNT(CASE WHEN score BETWEEN 9 AND 10 THEN 1 END) AS excellent_score,
COUNT(CASE WHEN score BETWEEN 7 AND 8 THEN 1 END) AS good_score,
COUNT(CASE WHEN score BETWEEN 1 AND 6 THEN 1 END) AS bad_score,
COUNT((CASE WHEN score BETWEEN 1 AND 6 THEN 1 END) AND (CASE WHEN A = false AND B = false AND C = false THEN 1 END)) AS bad_score_unconfirmed,
COUNT(CASE WHEN score IS NULL OR score = 0 THEN 1 END) AS not_rated_score
FROM
t_table;
4번 째 COUNT절에서 에러가 났다.
⚠️ 에러 내용
논리 연산자의 잘못된 사용이라는 에러이다.
즉 앞의 CASE 문을 통해 결과값 1이 반환되는데 여기서 AND 연산자는 불리언 값만 사용할 수 있기에 에러가 발생한다.
SELECT
COUNT(CASE WHEN score BETWEEN 9 AND 10 THEN 1 END) AS excellent_score,
COUNT(CASE WHEN score BETWEEN 7 AND 8 THEN 1 END) AS good_score,
COUNT(CASE WHEN score BETWEEN 1 AND 6 THEN 1 END) AS bad_score,
COUNT(CASE WHEN score BETWEEN 1 AND 6 AND A = false AND B = false AND C = false THEN 1 END) AS bad_score_unconfirmed,
COUNT(CASE WHEN score IS NULL OR core = 0 THEN 1 END) AS not_rated_score
FROM
t_table;
이렇게 단순하게 하면 되는 거였다.. ^^
'Database' 카테고리의 다른 글
[DB] Mybatis에서 if문에 enum 비교값 사용하기 (2) | 2024.12.18 |
---|---|
[DB] Select문 STRING_AGG() 함수 사용하기 (0) | 2024.10.04 |
[DB/JPA] ORM이란? (0) | 2024.08.22 |