엑셀보다 쉽고 빠른 SQL - 3주차
2025. 5. 7. 23:26ㆍSQL
🔁 SQL 기본 구조 복습
SELECT
FROM
WHERE
GROUP BY
ORDER BY
📌 예제
조건에 따라 SQL 구조 매칭해보기
- 주문 테이블에서 → FROM
- 주문 수량이 1건인 주문건의 → WHERE
- 음식 가격의 평균을 음식 종류별로 조회하여 → AVG, GROUP BY
- 음식 가격이 높은 순서대로 정렬하기 → ORDER BY
02. 다양한 문자 포맷 처리하기 (REPLACE, SUBSTRING, CONCAT)
✅ 1. 문자 데이터를 가공해야 하는 이유
업무에 사용할 데이터를 조회했지만, 그대로 쓰기 어려운 경우가 있습니다. 예를 들어:
- 이전에 사용하던 이름이나 주소가 포함된 데이터를 현재 기준으로 바꾸고 싶을 때
- 전체 주소가 아닌 시·도 정보만 필요할 때
- 두 개 이상의 값을 합쳐 새로운 포맷으로 만들고 싶을 때
🔧 2. 특정 문자 바꾸기:
REPLACE
REPLACE(컬럼명, 바꿀 대상, 새 값)
예제
- ‘Blue Ribbon’ → ‘Pink Ribbon’ 으로 변경
SELECT restaurant_name AS "원래 상점명",
REPLACE(restaurant_name, 'Blue', 'Pink') AS "바뀐 상점명"
FROM food_orders
WHERE restaurant_name LIKE '%Blue Ribbon%'
✂️ 3. 원하는 문자열만 남기기:
SUBSTRING
또는
SUBSTR
SUBSTR(컬럼명, 시작 위치, 글자 수)
예제
- ‘서울특별시 강남구’ → ‘서울’
SELECT addr AS "원래 주소",
SUBSTR(addr, 1, 2) AS "시도"
FROM food_orders
WHERE addr LIKE '%서울특별시%'
➕ 4. 문자열 합치기:
CONCAT
CONCAT(값1, 값2, 값3, ...)
예제
- 서울에 있는 음식점의 이름을 ‘[서울] 음식점명’ 형식으로 변경
SELECT restaurant_name AS "원래 이름",
addr AS "원래 주소",
CONCAT('[', SUBSTR(addr, 1, 2), '] ', restaurant_name) AS "바뀐 이름"
FROM food_orders
WHERE addr LIKE '%서울%'
03. 실습 예제
📊 실습 1: 서울 지역 음식 타입별 평균 주문금액
SELECT SUBSTRING(addr, 1, 2) AS "시도",
cuisine_type AS "음식 종류",
AVG(price) AS "평균 금액"
FROM food_orders
WHERE addr LIKE '%서울%'
GROUP BY 1, 2
👥 실습 2: 이메일 도메인별 고객 수와 평균 연령
SELECT SUBSTRING(email, 10) AS "이메일 도메인",
COUNT(customer_id) AS "고객 수",
AVG(age) AS "평균 연령"
FROM customers
GROUP BY 1
🧾 실습 3: 맞춤형 식별자 만들기
[지역] 음식점명 (음식종류) 형식으로 바꾸고 총 주문건수를 계산
SELECT CONCAT('[', SUBSTR(addr, 1, 2), '] ', restaurant_name, ' (', cuisine_type, ')') AS "식별자",
COUNT(*) AS "총 주문건수"
FROM food_orders
GROUP BY 1
'SQL' 카테고리의 다른 글
| Azure Data Factory SQL Database에 적재해보기 (0) | 2025.05.08 |
|---|---|
| SQL의 기본 구조 2주차 (0) | 2025.05.07 |