SUB QUERY (서브쿼리)
-- pages가 가장 긴 책의, 제목은 무엇입니까?
-- 해결방법 1. 정렬해서 limit
select title
from books
order by pages desc
limit 1;
-- 해결방법 2. sub query(서브쿼리)하는 방법
select title
from books
where pages = (select max(pages) from books);
concat 함수
: 문자열 이어주는 함수
-- 문자열을 합치는 함수 concat()
-- author_fname, author_lname 컬럼의 문자열을 하나로 합쳐서, full_name이라는 컬럼을 만들고 싶다.
-- as 생략 가능
select * , concat( author_fname,' ', author_lname) full_name
from books;
-- concat_ws() 함수를 사용하는 방법 : 첫번째 파라미터가 문자열 붙일때 사용할 문자열
-- as 생략 가능
select * , concat_ws( ' ' , author_fname , author_lname ) as full_name
from books;
-- 이름 두개를 붙여서, full_name을 만들고,
-- 책 제목과 출간년도를 같이 보여달라
select title, released_year, concat_ws( ' ' , author_fname , author_lname ) as full_name
from books;
-- 가장 최근에 발간된 책 3권을 찾아서 조회하시오
select concat_ws(' - ',title, released_year) as summary
from books
order by released_year desc
limit 3;
-- author_lname으로 정렬하되, my favorite author is 를 붙여서 조회하시오
select concat('MY FAVORITE AUTHOR IS ',author_lname,'!') yell
from books
order by author_lname asc;
max, min, avg
-- 최대값 구하는 함수 max()
-- 페이지수가 가장 많은 책은, 몇페이지 입니까?
select max(pages)
from books;
-- 최소값 구하는 함수 min()
-- 출판년도가 가장 빠른 책은 몇년도 입니까?
select *, min(released_year)
from books;
-- 평균값 구하는 함수 avg()
-- 년도별 책의 갯수와 평균 페이지수를 나타내세요 단, 년도로 정렬합니다
select released_year as year , count(released_year) as '# books', avg(pages) as 'avg pages'
from books
group by released_year
order by released_year asc;
'MySQL' 카테고리의 다른 글
MySQL) 두 개의 테이블 조인하기 (2) | 2024.05.16 |
---|---|
MySQL) 데이터베이스 DATE(날짜) 가공하는 함수 (0) | 2024.05.16 |
MySQL) Reverse, Char_length, Ifnull 함수 사용하기 (0) | 2024.05.14 |
MySQL) Substring, Replace, Upper/Lower 함수 사용하기 (0) | 2024.05.14 |
MySQL) LIKE, CASE, IF, GROUP BY 구문 사용하기 (0) | 2024.05.14 |