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 |
Tags
- 윈도우함수
- regexp
- 신입 데이터분석가
- funnel
- MYSQL
- 데이터리안
- python
- 퍼널분석
- 윈도우 함수
- row_number
- dense_rank
- 데이터분석
- 그로스해킹
- SQL
- 독서
- leetcode
- 프로그래머스
- pandas
- 서브쿼리
- 취준
- Retention
- 누적합
- 린분석
- Datarian
- SolveSQL
- rank
- advent of sql
- LEFTJOIN
- 리텐션
- 순위함수
Archives
- Today
- Total
데이터 분석
[Day 7] solvesql | Advent of SQL 2024 | 기증품 비율 계산하기💡 본문
기증품 비율 계산하기
문제 조건
1. 소장품 중 부분 기증품을 포함한 기증품의 비율을 계산
2. 백분율로 계산하며, 소수점 아래 넷째 자리에서 반올림 해 셋째 자리까지 표시
Solution
WITH T1 AS ( -- 비추
SELECT
credit,
CASE WHEN LOWER(credit) LIKE '%gift%' THEN 1 ELSE 0 END AS is_gift
FROM artworks
)
SELECT ROUND(AVG(is_gift)*100, 3) as ratio
FROM T1
credit 컬럼에 'gift'라는 단어의 등장 여부 확인 → CASE 문으로 이진값 변환
CTE를 생성하고 AVG 함수를 통해 기증품 비율을 출력
피드백
SELECT ROUND(SUM(CASE WHEN LOWER(credit) LIKE '%gift%' THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 3) AS ratio
FROM artworks
SELECT ROUND(COUNT(CASE WHEN LOWER(credit) LIKE '%gift%' THEN artwork_id END) * 100.0 / COUNT(*), 3) AS ratio
FROM artworks
/*
SELECT ROUND(SUM(CASE WHEN LOWER(credit) REGEXP 'gift' THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 3) AS ratio
FROM artworks
*/
CTE 작성 없이 한 단계로도 쿼리 작성이 가능하다.
✅SUM 으로 'gift'가 포함된 항목 개수를 집계
✅COUNT(*) 로 전체 소장품 개수를 집계
✔️ 0209 0813 복습
'SQL > solvesql' 카테고리의 다른 글
| [Day 9] solvesql | Advent of SQL 2024 | 게임 평점 예측하기 1💡 (0) | 2024.12.10 |
|---|---|
| [Day 8] solvesql | Advent of SQL 2024 | 온라인 쇼핑몰의 월 별 매출액 집계 (0) | 2024.12.10 |
| [Day 6] solvesql | Advent of SQL 2024 | 게임을 10개 이상 발매한 퍼블리셔 찾기 (0) | 2024.12.06 |
| [Day 5] solvesql | Advent of SQL 2024 | '_'가 포함되지 않은 데이터 찾기💡 (3) | 2024.12.05 |
| [Day 4] solvesql | Advent of SQL 2024 | 지자체별 따릉이 정류소 개수 세기 (0) | 2024.12.04 |