최근에 GROUP_CONCAT를 사용하여 집계를 수행하려고합니다. 각 유사한 값에 대해 모든 중복 항목이 쿼리가됩니다.Group_Concat with duplicates
invoice_number 열을 기반으로 모든 비슷한 항목을 쿼리하고 문자열에서 group_concat을 사용하고 싶습니다.
그러나 발견 된 첫 번째 값과 group_concat 만 검색 할 수 있습니다. 동일한 인보이스 번호를 공유하는 항목의 양을 기반으로 여러 연결 문자열이 필요합니다.
송장 테이블
|item_id |invoice_number |amount |currency|
|-----------|---------------|-------|--------|
|379406 |INV00000046 |52286 |USD |
|567501 |INV00000046 |52286 |USD |
|102448 |INV00000390 |0 |USD |
|1975291 |INV00000390 |0 |USD |
|62436 |INV00000390 |0 |USD |
|4067502 |INV00000346 |35112 |EUR |
|5174950 |INV00000346 |35112 |EUR |
원하는 결과
|item_id |related items |amount |currency|
|-----------|-----------------------|-------|--------|
|379406 |379406,567501 |52286 |USD |
|567501 |379406,567501 |52286 |USD |
|102448 |102448,1975291,62436 |0 |USD |
|1975291 |102448,1975291,62436 |0 |USD |
|62436 |102448,1975291,62436 |0 |USD |
|4067502 |4067502,5174950 |35112 |EUR |
|5174950 |4067502,5174950 |35112 |EUR |
내가 쓴 쿼리 :
SELECT
item_id,
invoice_number,
GROUP_CONCAT(item_id) as shared_item_ids,
ROUND(AVG(amount)/100,2) as invoice_amount,
currency
FROM
invoices
GROUP BY
invoice_number,
currency
01
이
내 테이블
을 알려줍니다. –
죄송합니다. 그룹별로 (item_id별로 그룹화해야합니다.) – rlanvin
@rlanvin 내 대답과 다른 점은 무엇입니까? –