// 공통 테이블 표현식(Common Table Expression, CTE)을
//사용하여 재귀적으로 시간대(HOURS) 테이블을 생성
//0부터 자기자신을 참조하며 23보다 작을때까지 반복
WITH RECURSIVE HOURS AS (
SELECT 0 AS HOUR
UNION ALL
SELECT HOUR + 1 FROM HOURS WHERE HOUR < 23
)
반올림이 필요할때 사용
소수점 2번째에서 반올림이 필요할때
ROUND(COUNT(DISTINCT O.USER_ID)/MAX(O.USER_ID), 1)
AS PUCHASED_RATIO
소수점 4번째에서 반올림이 필요할때
ROUND(COUNT(DISTINCT O.USER_ID)/MAX(O.USER_ID), 3)
AS PUCHASED_RATIO
해당 열에 몇개의 내용이 있는지 확인할때 사용
COUNT(DISTINCT O.USER_ID) AS PUCHASED_USERS
YEAR(O.SALES_DATE) AS YEAR, //연도
MONTH(O.SALES_DATE) AS MONTH, // 월
DAY(O.SALES_DATE) AS DAY, // 날짜
HOUR(O.SALES_DATE) AS YEAR, // 시
MINUTE(O.SALES_DATE) AS MONTH, // 분
SECOND(O.SALES_DATE) AS DAY //초
만약 등록된것이 없다면 아래와 같이 형식에 맞추어
0으로 표시된다.
날짜의 형식을 바꾸거나 필요한 부분으로 맞추어 사용할때
DATE_FORMAT(reply.CREATED_DATE , '%Y-%m-%d') AS TODAY
where DATE_FORMAT(reply.CREATED_DATE,'%Y-%m') = '2022-10'
두 개 이상의 SELECT 문의 결과를 합치는 데 사용되는 SQL의 연산자로
두 개의 쿼리의 결과를 하나의 결과로 결합하는 역할을 합니다. UNION은 중복된 행은 제거하고 유일한 결과를 제공합니다.
SELECT FLAVOR
FROM
(SELECT *
FROM FIRST_HALF
UNION
SELECT *
FROM JULY) a
GROUP BY FLAVOR
ORDER BY SUM(TOTAL_ORDER) DESC
두 쿼리의 결과를 UNION으로 결합하면 중복 행은 제거되고 두 쿼리의 결과가 하나로 합쳐진 결과가 반환되며 중복되지 않는 FLAVOR들에 대한 합쳐진 결과 중 상위 3개를 최종 결과를 얻게 됩니다.
SELECT TOTAL_ORDER FROM my_table;
하나씩 나올것이지만 전부나오지만
GROUP BY 로 FLAVOR을 지정하고 SUM을 할시
이렇게 두개로 합쳐져서 나온다.
감사합니다. 이런 정보를 나눠주셔서 좋아요.