반응형
문제
여러분은 열렬한 여행가이고 너무 많은 나라를 방문해서 사람들이 여러분이 어디에 갔었는지를 물어보면, 여러분은 그들 모두를 기억할 수조차 없어요! 다행히도, 어디를 여행할 때마다 여행 정보를 일기에 적습니다. 이제 일지에 있는 정보를 사용하여 방문한 모든 다양한 국가의 목록을 확인하려고 합니다.
일지는 다음과 같은 열이 있는 테이블 일지로 표시됩니다.
id: 여행의 고유 ID;
travel_date: 여행이 시작된 날짜;
국가: 당신이 여행한 나라.
이 일지 표를 사용하여 방문한 모든 개별 국가의 세미콜론으로 구분된 목록을 만들고 사전순으로 정렬한 후 단일 국가 열이 있는 테이블에 목록을 넣습니다.
입력 테이블
id | travel_date | country |
1 | 2008-05-12 | Ireland |
2 | 2010-11-04 | France |
3 | 2005-10-02 | Australia |
4 | 2008-06-08 | Japan |
5 | 2010-08-27 | Austria |
6 | 2009-02-15 | France |
출력 테이블
countries |
Australia;Austria;France;Ireland;Japan |
문자열 합치기를 할때 group_concat 처음 사용하니 group by 와 같이 사용해야하는것인줄 알았습니다.
초기 푼 문제 쿼리
select group_concat(distinct a.country order by a.country asc separator ';') as countries
from (
select 10 as num,country
from diary
) a
group by a.num;
잘푼 풀이
SELECT GROUP_CONCAT(DISTINCT country ORDER BY country) AS countries FROM diary;
반응형
'알고리즘 > 코드시그널' 카테고리의 다른 글
[Code Signal-SQL] Group By 관련 문제 (0) | 2021.03.13 |
---|---|
[Code Signal-SQL] LIKE 정규표현식 (특수문자가 포함된 문자열 조회) (0) | 2021.03.06 |