16 Tue
데이터 분석을 위한 고급 SQL
수업에서 언급하지 않은 함수나 문법
정규 표현식
[심화] 사용자 정의 함수
Last updated
Last updated
SET @HOUR_IT := -1;
SELECT @HOUR_IT := @HOUR_IT+1 AS 'HOUR',
(SELECT COUNT(*)
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) = @HOUR_IT) AS 'COUNT'
FROM ANIMAL_OUTS
WHERE @HOUR_IT < 23;SELECT HOURS.HOUR, IFNULL(AO.CNT, 0) AS COUNT
FROM
JSONTABLE(
"[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]",
'$[]' COLUMNS (HOUR INT PATH '$')
) HOURS
LEFT JOIN (
SELECT HOUR(DATETIME) as HOUR, COUNT() as CNT
FROM ANIMALOUTS
GROUP BY HOUR(DATETIME)
) AS AO ON AO.HOUR = HOURS.HOURSELECT DISTINCT city
FROM station
WHERE city REGEXP '^[aeiou].*'CREATE FUNCTION 'function name' ('parameter name', 'datatype')
RETURNS 'datatype' (DETERMINISTIC)
BEGIN
DECLARE 'variable name' 'datatype';
SET ;
RETURN (Query) / 'variable name';
ENDBEGIN
DECLARE customerLevel VARCHAR(20);
IF credit > 50000 THEN
SET customerLevel = 'PLATINUM';
ELSEIF (credit >= 50000 AND
credit <= 10000) THEN
SET customerLevel = 'GOLD';
ELSEIF credit < 10000 THEN
SET customerLevel = 'SILVER';
END IF;
-- return the customer level
RETURN (customerLevel);
END