728x90
solvesql - 가구 판매의 비중이 높았던 날 찾기
solvesql
solvesql.com
[첫번 째 시도]
furiture_pct가 모두 0으로 들어가있더라구요.
카테고리가 Furniture인 수 / 전체 수를 나누는 과정에서 소수점까지 나타나지 않는 듯 합니다.
[소수점 출력하는 법 추가]
--방법1) 0.00 더해주기
--방법2) CAST함수 이용 : CAST (컬럼명 AS 타입)
* 타입 종류
double, real | 소수점 아래 15자리까지 표현 |
float | 소수점 아래 7자리까지 표현 |
BINARY | 값을 binary로 변환 |
CHAR | 값을 문자열로 변환 |
DATE | 값을 yyyy-mm-dd의 date로 변환 |
DATETIME | 값을 yyy-mm-dd hh:mm:ss 의 datetime으로 변환 |
TIME | 값을 hh:mm:ss의 time으로 변환 |
DECIMAL | 값을 최대자릿수인(M), 소수점 이하 자릿수(D)로 지정하여 decimal로 변환 |
NCHAR | 값을 nchar로 변환(char랑 비슷하지만, 국가별 문자 세트로 문자열 생성) |
SIGNED ~ | 값을 signed(부호 있는 64비트 정수)로 변환합니다. |
UNSIGNED ~ | 값을 signed(부호 없는 64비트 정수)로 변환합니다. |
[최종 코드]
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)/(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
728x90
'𝙎𝙌𝙇' 카테고리의 다른 글
[MySQL] 집계함수 : count, sum, avg, max, min, std, stdev_pop, variance, var_pop (0) | 2023.02.01 |
---|---|
[Solvesql] 쇼핑몰의 일일 매출액과 ARPPU (0) | 2023.01.31 |
[MySQL] SolveSQL 문제풀이 : 날짜, 시간 추출 (0) | 2023.01.29 |
[MySQL] 중복되는 값 찾기 : GROUP BY, HAVING >1 (0) | 2023.01.26 |
[MySQL] 피벗테이블 만들기 : CASE WHEN, GROUP BY (0) | 2023.01.26 |