DATABASE/MySQL Workbench

MySQL Workbench : group by 해서 만들어진 컬럼을 이용해서, case 문 만들때 조심해야할 사항 (컬럼 이름 사용법 설명)

신강희 2024. 5. 15. 23:09
728x90

< MySQL  group by 해서 만들어진 컬럼을 이용해서, case 문 만들때 조심해야할 사항 (컬럼 이름 사용법 설명) >

# 이전 생성한 스키마(DB)와 테이블로 이어서 진행

# 참고 : https://sorktjrrb.tistory.com/105

 

MySQL Workbench : 문자열 처리 함수들 (concat, concat_ws, substring)

# 문자열 처리 함수 학습을 위해 books 라는 새로운 테이블 생성ㄴ 혹시 테이블을 수정하고 싶으면 좌측 목록에서 체크된 아이콘을 누르면 수정 가능! # yhdb 를 사용하였으므로, 해당 db 사용 문구

sorktjrrb.tistory.com

 

# case 혹은 if등 조건문은 select 같은 행에 작성을 해주어야 한다.

# groub by 뒤에 having을 사용할때는 select 문 이후에 작성하는것이기 때문에 select 문에서 as 로 변경한 컬럼명을 사용할수 있지만,

# case, if 조건문에는 변경한 컬렴명을 사용할수 없고, 무조건 원본 데이터의 컬럼명 자체를 사용하여야 한다.

# 물론 조건문으로 출력시킨 컬럼에는 as로 컬럼명을 변경할수 있다.

-- 작가의 full name(fname, lname) 으로, 각 작가별로 몇권의 책을 썼는지 갯수를 나타내고,
-- 1권이면 book으로 하고 2권이상이면 books를 붙여라.

-- 조건문에는 무조건 원본 컬럼명을 사용하여야 한다.

select title, author_lname ,
	if( count(title) = 1 , concat(count(title), ' book') , concat(count(title), ' books' )) as COUNT
from books
group by author_fname, author_lname
order by author_lname;

 

다음 게시글로 계속~!

반응형