C.W.K.
Stream
Lesson 09 of 16 · published

DISTINCT, IN, BETWEEN, LIKE

~10 min · queries, operators

Level 0스키마 새싹
0 XP0/86 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

Shorthand 연산자

길고 못생긴 조건을 짧고 readable 하게 만드는 네 연산자. 한 번 syntax 외워; 매일 사용.

DISTINCT — 중복 제거

SELECT DISTINCT category FROM products 가 각 카테고리 한 번. SELECT DISTINCT a, b FROM t 가 각 유일 조합. COUNT(DISTINCT col) 이 유일 값 카운트.

IN, BETWEEN, LIKE/ILIKE

IN (a, b, c)= a OR = b OR = c 의 shorthand + subquery 지원. BETWEEN x AND y 가 양 끝 포함. LIKE% (0개 이상) 와 _ (1개) 사용; ILIKE 가 대소문자 무시 (PostgreSQL extension).

Code

DISTINCT 모양·sql
SELECT DISTINCT category FROM products;

SELECT DISTINCT city, country FROM customers ORDER BY country, city;

SELECT COUNT(DISTINCT category) AS unique_categories FROM products;

-- DISTINCT ON (PostgreSQL extension): ORDER BY 로 정의된 그룹당 한 행
SELECT DISTINCT ON (customer_id) customer_id, placed_at, total
FROM   orders
ORDER  BY customer_id, placed_at DESC;
-- 고객당 가장 최근 주문 반환.
IN, BETWEEN, LIKE/ILIKE·sql
SELECT * FROM orders
WHERE  status IN ('pending', 'processing', 'shipped');

SELECT * FROM events
WHERE  event_date BETWEEN '2025-01-01' AND '2025-12-31';

SELECT * FROM users WHERE email LIKE '%@gmail.com';
SELECT * FROM articles WHERE title ILIKE '%postgres%';

-- subquery 와 IN
SELECT * FROM products
WHERE  category_id IN (SELECT id FROM categories WHERE department = 'Electronics');

External links

Exercise

DISTINCT ON 으로 고객당 최근 주문 가져오기. subquery + ROW_NUMBER() 로 같은 쿼리 재작성 (lesson 14 패턴). 비교.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.