기본 구조
CASE (SQL 표준)
# 예시 1: 정수를 텍스트로 변환
SELECT CAST(1234 AS TEXT) AS converted_value;
# 예시 2: 소수를 정수로 변환
SELECT CAST(12.34 AS INTEGER) AS converted_value;
# 예시 3: 텍스트를 날짜로 변환
SELECT CAST('2025-03-12' AS DATE) AS converted_date;
# 예시 4: 텍스트를 정수로 변환
SELECT CAST('5678' AS INTEGER) AS converted_value;
# 예시 5: JSON 문자열을 JSON 객체로 변환
SELECT CAST('{"key": "value"}' AS JSON) AS json_object;
# 예시 6: 숫자를 소수로 변환
SELECT CAST(5 AS DECIMAL) AS converted_value;
:: (PostgreSQL)
# 예시 1: 정수를 텍스트로 변환
SELECT 1234::TEXT AS converted_value;
# 예시 2: 소수를 정수로 변환
SELECT 12.34::INTEGER AS converted_value;
# 예시 3: 텍스트를 날짜로 변환
SELECT '2025-03-12'::DATE AS converted_date;
# 예시 4: 텍스트를 정수로 변환
SELECT '5678'::INTEGER AS converted_value;
# 예시 5: JSON 문자열을 JSON 객체로 변환
SELECT '{"key": "value"}'::JSON AS json_object;
*** 나누기와 연산
## PostgreSQL에서의 나누기 연산
2/3 -- 0
CAST(2/3 AS NUERTIC) -- 0
## 문자열을 소수로 반환
2/3 ::DECIMAL -- 0.66666666666666666667
## 다른 방법
CAST(2 AS NUERTIC) / 3 -- 0.66666666666666666667
2./3 -- 0.66666666666666666667
2/3. -- 0.66666666666666666667
참고 : https://www.postgresql.org/docs/9.4/static/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS-GENERIC
[활용 문제]
https://datalemur.com/questions/signup-confirmation-rate
TikTok SQL Interview Question | DataLemur
TikTok SQL Interview Question: Write a query to calculate the signup activation rate.
datalemur.com
SELECT ROUND(SUM(cnt) / COUNT(cnt) :: DECIMAL ,2)
FROM(
SELECT *,
CASE WHEN signup_action = 'Confirmed' THEN 1 ELSE 0 END AS cnt
FROM emails e
JOIN texts t ON e.email_id = t.email_id ) AS sub
'내일배움캠프 > SQL' 카테고리의 다른 글
[PostgreSQL] FILTER_SELECT문 속의 조건 (0) | 2025.03.12 |
---|---|
[SQL]LAG(), LEAD()함수 _현재 행의 이전 행의 값 참조하기 (0) | 2025.02.10 |
[SQL]SQL반복문_재귀적 CTE(WITH RECURSIVE) (1) | 2024.12.12 |
[SQL] null값 대체하기_COALESCE, IFNULL (0) | 2024.12.12 |
[SQL] WITH절이란, 서브쿼리와의 쓰임새 차이 (0) | 2024.12.06 |