SELECT ํ๋์ด๋ฆ1, ํ๋์ด๋ฆ2, ...,
FROM ํ ์ด๋ธ์ด๋ฆ
WHERE ์ ํ์กฐ๊ฑด
GROUP BY ํ๋์ด๋ฆ1, ํ๋์ด๋ฆ2
ORDER BY ํ๋์ด๋ฆ [ASC|DESC] -- ํ๋์ด๋ฆ ๋์ ์ ์ซ์ ์ฌ์ฉ ๊ฐ๋ฅ
LIMIT N;
SELECT (2)
SELECT * -- *์ ๋ชจ๋ ํ๋๋ฅผ ์ง์นญ
FROM prod.session; -- ์์ USE prod; ๋ฅผ ์ํํ๋ค๋ฉด session๋ ์ฌ์ฉ ๊ฐ๋ฅ
SELECT (3)
SELECT id, user_id, channel_id
FROM session;
SELECT *
FROM session
LIMIT 10;
SELECT (4)
SELECT DISTINCT channel_id -- ์ ์ผํ ์ฑ๋ ID๋ฅผ ์๊ณ ์ถ์ ๊ฒฝ์ฐ
FROM session;
SELECT channel_id, COUNT(1) -- ์ฑ๋ ID๋ณ ์นด์ดํธ๋ฅผ ํ๋ ค๋ฉด ๊ทธ๋ฃน ๋ฐ์ด / ์นด์ดํธ ํจ์
FROM session
GROUP BY 1;
CASE
WHEN ์กฐ๊ฑด1 THEN ๊ฐ1
WHEN ์กฐ๊ฑด2 THEN ๊ฐ2
ELSE ๊ฐ3
END ํ๋์ด๋ฆ
SELECT channel_id, CASE
WHEN channel_id in(1,5,6) THEN 'Social-Media'
WHEN channel_id in(2,4) THEN 'Search-Engine'
ELSE 'Something-Else'
END channel_type
FROM session
LIKE : ๋์๋ฌธ์ ๊ตฌ๋ณ ์์ด ๋ฌธ์์ด ๋งค์นญ ๊ธฐ๋ฅ์ ์ ๊ณตํด์ค
where channel LIKE โG%โ -> โG*โ
where channel LIKE โ%o%โ -> โoโ
NOT LIKE์ ํจ๊ป ์ฐ์
BETWEEN
๋ ์ง ๋ฒ์์ ์ฌ์ฉ ๊ฐ๋ฅ
์์ ์คํผ๋ ์ดํฐ๋ค์ CASE WHEN์ฌ์ด์์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
SELECT COUNT(1)
FROM prod.session
WHERE channel_id IN (4,5);
SELECT DISTINCT channel
FROM prod.channel
WHERE channel LIKE '%o%';
SELECT DISTINCT channel
FROM prod.channel
WHERE channel NOT LIKE '%o%';
select
LEFT(create, 7) AS mon,
COUNT(1) AS session_count
from prod.session
GROUP BY 1 -- GROUP BY mon, GROUP BY LEFT(create, 7)
ORDER BY 1;
ํ์ต์์
SHOW DATABASES;
USE prod;
SHOW TABLES;
SELECT *
FROM prod.session;
SELECT id, user_id, channel_id
from prod.session;
select *
from prod.session
limit 10;
-- ์ ์ผํ ์ฑ๋ ID๋ฅผ ์๊ณ ์ถ์ ๊ฒฝ์ฐ
select distinct channel_id
from prod.session;
-- ์ฑ๋ id๋ณ ์นด์ดํธ๋ฅผ ํ๋ ค๋ฉด?
select channel_id, count(1)
from prod.session
group by 1;
-- ํ ์ด๋ธ์ ๋ชจ๋ ๋ ์ฝ๋ ์ ์นด์ดํธ
select count(1)
from prod.session;
-- ์ฑ๋ ํ ์ด๋ธ์ ๋ชจ๋ ๋ ์ฝ๋ ์์นด์ดํธ
select *
from prod.channel;
-- ์ฑ๋์ด ํ์ด์ค๋ถ์ธ ๊ฒฝ์ฐ๋ง ๋ ์ฝ๋ ์ ์นด์ดํธ
select count(1)
from prod.session
where channel_id=5; -- where channel_id in (5)
-- CASE WHEN
select channel_id,
CASE
WHEN channel_id in (1,5,6) THEN 'social-media'
WHEN channel_id in (2,4) THEN 'search-engine'
ELSE 'somthing-else'
END channel_type
from prod.session;
select distinct channel_id,
CASE
WHEN channel_id in (1,5,6) THEN 'social-media'
WHEN channel_id in (2,4) THEN 'search-engine'
ELSE 'somthing-else'
END channel_type
from prod.session;
-- count ์ ๋๋ก ์ดํดํ๊ธฐ
select * from prod.count_test;
select count(1) from prod.count_test;
select count(0) from prod.count_test;
select count(null) from prod.count_test;
select count(value) from prod.count_test;
select count(distinct value) from prod.count_test;
-- where ์กฐ๊ฑด
select count(1)
from prod.session
where channel_id in (4,5);
select distinctchannel
from prod.channel
where channel LIKE '%G%';