본문 바로가기

Diary/TIL

2024-01-27

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