[Solvesql] 입문반 무료 문제 풀이 (SQLite)

2024. 1. 28. 23:03·코테/SQL
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
'코테/SQL' 카테고리의 다른 글
  • [Programmers] PCSQL 샘플문제 4번 (MYSQL)
  • [Solvesql] 실전반 무료 문제 풀이 (SQLite)
  • [Programmers] Lv.4 입양시각 구하기 (재귀)
  • [Programmers] 상품을 구매한 회원 비율 구하기 (JOIN)
DROPDEW
DROPDEW
💻 Developer | 기록하지 않으면 존재하지 않는다
  • DROPDEW
    제 2장 1막
    DROPDEW
  • 전체
    오늘
    어제
    • Dev (420) N
      • App·Android (1)
      • BE (44)
        • HTTP 웹 기본 지식 (8)
        • 스프링 입문 - 코드로 배우는 스프링 부트, 웹 .. (12)
        • 스프링부트와 JPA 활용 (11)
        • 스프링부트 시큐리티 & JWT (0)
        • PHP (6)
      • FE·Client (23)
        • HTML (1)
        • React (19)
        • Unity (1)
      • Data (19) N
        • AI (7)
        • Bigdata (6)
        • Database (1)
        • 빅데이터분석기사 (4) N
      • Infra (0)
      • Activity (1)
        • Education (0)
        • Intern (0)
        • 리모트 인턴십 6기 (1)
        • 구름톤 유니브 4기 (0)
        • SW교육기부단 15기 (0)
      • CS (8)
      • 취준 (13)
        • 자격증 (4)
        • 인적성·NCS (6)
        • 코테·필기·면접 후기 (3)
      • 코테 (270)
        • Algorithm (222)
        • SQL (35)
        • 정리 (13)
      • 인사이트 (27)
        • 회고 (0)
        • 금융경제뉴스 (7)
        • 금융용어·지식 (2)
        • 북마크 (7)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    그래프이론
    정렬
    최단경로
    구현
    자료구조
    수학
    문자열
    백준
    브루트포스 알고리즘
    너비우선탐색
    다이나믹프로그래밍
    그리디알고리즘
    시뮬레이션
    누적합
    이분탐색
    티스토리챌린지
    투포인터
    매개변수탐색
    그래프탐색
    오블완
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
DROPDEW
[Solvesql] 입문반 무료 문제 풀이 (SQLite)
상단으로

티스토리툴바