2016-09-09 5 views
1

모든 값의 목록을 작성하여 필드를 집계 : 팀 그룹에임팔라/SQL : GROUP BY - 나는 아래의 테이블이

id | animal | team 
------------------------- 
1 | dog  | A 
2 | cat  | A 
3 | cow  | A 
4 | bird | B 
5 | rat  | B 
6 | goat | C 

내가 원하는, 그리고 목록에 팀에서 동물을 집계 . 즉 출력은 다음과 같아야합니다 :

team | animal_list 
-------------------------- 
A | [dog, cat, cow] 
B | [bird, rat] 
C | [goat] 

임팔라/SQL 쿼리로이를 수행 할 수 있습니까?

답변

4

이 검색어를 사용하십시오. http://sqlfiddle.com/#!9/1b03f/3

+0

감사 :

select team, concat("[", group_concat(animal), "]") as animal_list from anmials group by team 

현재 결과 출력을 볼 수 있습니다! 그러나 목록에있는 각 값의 복사본을 하나만 유지할 수 있는지 궁금합니다. 예를 들어 팀에 두 마리의 고양이가있는 경우 [개, 고양이, 고양이, 소] 대신 [개, 고양이, 소]를 원하십니까? – Edamame

+0

네, 그렇게하실 수 있습니다.이 팀을 선택하여 사용하십시오. 팀에 의해 anmials 그룹의 group_contact (distinct (animal)) animal_list와 같이 사용하십시오. – Senthil

+0

출력/데모보기 : http://sqlfiddle.com/#!9/12604/ 2 – Senthil