1. REGEXP ( )
-- ๊ธฐ๋ณธ ๊ตฌ์กฐ
WHERE ๊ฒ์์ปฌ๋ผ REGEXP('๊ฒ์๋ฌธ์1|๊ฒ์๋ฌธ์2|...');
-- ์์
SELECT
*
FROM
car_rental_company_car
WHERE
options REGEXP('ํตํ์ํธ|์ด์ ์ํธ|๊ฐ์ฃฝ์ํธ')
2. ๋ ์ง ๋ฐ์ดํฐ ์ถ์ถ
3. COUNT(expr) [over_clause]
COUNT( )๋ 0์ ๋ฐํCOUNT(NULL)์ ํญ์ 0์ ๋ฐํ4. COUNT(*)
5. SELECT COUNT(*) vs SELECT COUNT(1)
SELECT COUNT(*)์ SELECT COUNT(1)์ ๋์์ด ๋์ผ โ ์ฑ๋ฅ ์ฐจ์ด ์์[ โถ SQL ๊ธฐ์ด ๊ฐ์ ]
1. Pivot Table ๋ง๋ค๊ธฐ
-- ์์์ ๋ณ ์๊ฐ๋ณ ์ฃผ๋ฌธ ๊ฑด์ Pivot Table ๋ทฐ ๋ง๋ค๊ธฐ
SELECT
restaurant_name
-- GROUP BY๋ก ๋ฌถ์ด์ฃผ์๊ธฐ ๋๋ฌธ์ ์ง๊ณํจ์ ์ฌ์ฉ
, MAX(IF(pay_time='15',cnt_orders,0)) '15'
, MAX(IF(pay_time='16',cnt_orders,0)) '16'
, MAX(IF(pay_time='17',cnt_orders,0)) '17'
, MAX(IF(pay_time='18',cnt_orders,0)) '18'
, MAX(IF(pay_time='19',cnt_orders,0)) '19'
, MAX(IF(pay_time='20',cnt_orders,0)) '20'
FROM
( -- ๋ฒ ์ด์ค ๋ฐ์ดํฐ ๊ตฌ์ฑ
SELECT
f.restaurant_name
, HOUR(p.time) pay_time
, COUNT(1) cnt_orders
FROM
food_orders f
LEFT JOIN payments p
ON f.order_id = p.order_id
WHERE HOUR(p.time) BETWEEN 15 AND 20
GROUP BY
restaurant_name, pay_time) a
GROUP BY 1
-- alias = ์ซ์๋ก ์์ฑ โ ์ต์ ๋ถํธ ์ฌ์ฉ
ORDER BY `20` DESC;