728x90
난이도 1. 모든 데이터 조회하기
SELECT *
FROM POINTS;
난이도 1. 데이터 정렬하기
SELECT *
FROM points
WHERE quartet = 'I'
ORDER BY y;
난이도 1. 특정 컬럼만 조회하기
SELECT x, y
FROM points;
난이도 1. 레스토랑의 영업일
SELECT DISTINCT DAY AS day_of_week
FROM tips;
난이도 3. 할부는 몇 개월로 해드릴까요
SELECT payment_installments, COUNT(DISTINCT order_id) AS order_count,
MIN(payment_value) AS min_value, MAX(payment_value) AS max_value,
AVG(payment_value) AS avg_value
FROM olist_order_payments_dataset
WHERE payment_type = 'credit_card'
GROUP BY payment_installments;
DISTINCT로 주문번호 중복제거 해줘야 한다!!
그리고 조건절 잘 확인하기
난이도 3. 지역별 주문의 특징
SELECT A.region AS Region,
SUM(CASE WHEN A.category = 'Furniture' THEN cnt END) AS 'Furniture',
SUM(CASE WHEN A.category LIKE 'Office Supplies' THEN cnt END) AS 'Office Supplies',
SUM(CASE WHEN A.category = 'Technology' THEN cnt END) AS 'Technology'
FROM
(SELECT region, category, count(distinct order_id) AS cnt
FROM records
GROUP BY region, category
ORDER BY region
) AS A
GROUP BY A.region
ORDER BY A.region;
행을 열으로 바꾸려면 CASE문 사용해서 PIVOT테이블 만들어야했다 ..ㅎ 처음 만들어봄
SUM 해줘야 하는데, 안해줘서 계속 값이 안나왔다.
Furniture 컬럼은 잘 나오는데 .. 나머지는 안나와서 한참 헤메다가 해결.
나중에 다시 풀어봐야지.. TT
난이도 4. 가구 판매의 비중이 높았던 날 찾기
SELECT order_date,
COUNT(DISTINCT CASE WHEN category = 'Furniture' THEN order_id END) AS furniture,
ROUND((COUNT(DISTINCT CASE WHEN category = 'Furniture' THEN order_id END)+0.00)/(COUNT(DISTINCT order_id)+0.00)*100,2) AS furniture_pct
FROM records
GROUP BY order_date
HAVING COUNT(DISTINCT order_id) >= 10 AND furniture_pct >= 40
ORDER BY furniture_pct DESC, order_date;
SQLite 환경에서의 쿼리문 작성은 처음인데, 다른건 다 했는데, ROUND함수 사용한 부분에서 계속 0으로 출력됐다.
SQLite에서는 나누기를 하면 정수부분만 출력된다고 ..
해결법은 float형으로 바꾸어서 출력해주면 된다고 해서 그렇게 해봤다.
숫자 뒤에 +0.00 해주는거 ..
근데 왜 저는 정답이 아니라고 뜰까요?? ㅠㅠ 다른분들 코드랑 같은데 저만 왜 안되는건지 ..
이유를 아시는 분이 있다면 댓글 주세요 .. 🥹
꼭 알고싶습니다 .. 🥹
++) 2/1 기준 같은 코드로 제출하니까 정답이라네요 ? 요상하네 ..
728x90
'코테 > SQL' 카테고리의 다른 글
[Programmers] PCSQL 샘플문제 4번 (MYSQL) (0) | 2024.02.02 |
---|---|
[Solvesql] 실전반 무료 문제 풀이 (SQLite) (1) | 2024.02.02 |
[Programmers] Lv.4 입양시각 구하기 (재귀) (1) | 2024.01.27 |
[Programmers] 상품을 구매한 회원 비율 구하기 (JOIN) (1) | 2024.01.26 |
[Programmers] IFNULL, 조건에 맞는 값 구하기 (0) | 2023.05.02 |