다음 테이블이 있습니다:
id | 코드 | 금액 | 수량 |
---|---|---|---|
1 | 1 | 25 | 36 |
2 | 2 | 30 | 6 |
3 | 5 | 100 | 1 |
4 | 1 | 25 | 100 |
5 | 1 | 20 | 1 |
6 | 4 | 10 | 136 |
7 | 1 | 10 | 20 |
코드 = 1인 모든 금액의 합계를 찾고 싶습니다. 또한 모든 수량의 쉼표로 구분된 값과 이러한 모든 이벤트에 대한 모든 ID의 쉼표로 구분된 값이 필요합니다.
예: 출력은 다음과 같아야 합니다:
코드 | 금액 | 수량 | id |
---|---|---|---|
1 | 80 | 36, 100,1, 20 | 1,4,5,7 |
저도 비슷한 일을 할 수 있다는 걸 알아요
으아아아이 코드에 해당하는 합계를 구했지만 이러한 수량과 ID를 모두 구하는 방법을 모르겠습니다.
DBFiddle
P粉5783439942024-04-02 00:22:58
MySQL에서는 GROUP_CONCAT
쿼리 #1
으아악코드 | total_amount | id | qts |
---|---|---|---|
1 | 80 | 1,4,5,7 | 36,100,1,20 |
Postgres에서는 string_agg
쿼리 #1
으아악P粉3233748782024-04-02 00:12:44
GROUP_CONCAT
를 사용하여 모든 데이터를 그룹화할 수 있습니다.
GROUP_CONCAT
기본적으로 쉼표(,)가 구분 기호로 사용되므로 동일한 쿼리를 작성할 수 있습니다.
다른 구분 기호를 원한다면 구체적으로 정의할 수도 있습니다.