with table1 as (
select course_id, count(distinct(user_id)) as cnt_checkins from checkins
group by course_id
), table2 as (
select course_id, count(*) as cnt_total from orders
group by course_id
)
distinct()를 사용하여 중복된 값을 제거하여 유일한 값만을 반환하도록 할 수 있다.
CONCAT('문자열1', ' ', '문자열2')
CONCAT_WS(' ','문자열1','문자열2')
() 안에 있는 모든 문자열을 합쳐주는 함수.
CONCAT_WS('-',SUBSTRING(TLNO, 1, 3),SUBSTRING(TLNO, 4, 4),SUBSTRING(TLNO, 8)) AS 전화번호
FORMAT은 특수한 SQL서버에서만 활용 가능하기 떄문에 보통 이렇게 SUBSTRING으로 나누어 줘야 한다.
select user_id, email, SUBSTRING_INDEX(email, '@', 1) from users
SUBSTRING_INDEX는 @를 기준으로 텍스트를 쪼개고, 그 중 첫 번째 조각을 가져오라는 의미를 가지고 있다.
MONTH(START_DATE)
CAST(DATE_FORMAT(START_DATE, '%m') AS UNSIGNED)
CAST(SUBSTRING(START_DATE, 6, 2) AS UNSIGNED)
MYSQL에서 int 형변환은 직접 할수 없어 UNSINGED로 해줘야 한다. (DATE에서 몇달인지 구할때 사용)
'Diary > TIL' 카테고리의 다른 글
2024-04-08 (0) | 2024.04.09 |
---|---|
2024-02-06 (0) | 2024.02.06 |
2024-01-26 (0) | 2024.01.27 |
2024-01-25 (0) | 2024.01.26 |
2024-01-12 (0) | 2024.01.13 |