복붙노트

[SQL] 연결하여 그룹화 행

SQL

연결하여 그룹화 행

나는이 테이블에서 가능하다 알고 싶다

ID   Price    ServiceID
1    50       11
1    -10      12
2    100      11
2    20       11

ID별로 그룹에, 가격 및 CONCATENATE 서비스 id,이 같은 합계 :

ID   Price    ServiceID
1    40       11,12
2    120      11

그것은 ID로 그룹에 오히려 간단하고 가격을 합하지만, CONCATENATE 서비스 ID는 나를 놀리는 것.

참여 주셔서 감사합니다.

해결법

  1. ==============================

    1.사용하다:

    사용하다:

    select t.id, sum(t.price)
        , stuff((
            select distinct ',' + cast(t2.ServiceID as varchar(max))
            from @t t2
            where t2.id = t.id
            for xml path('')
        ), 1, 1, '')
    from @t t
    group by t.id
    

    산출:

    ----------- --------------------- ---------------------
    1           40,00                 11,12
    2           120,00                11
    
  2. from https://stackoverflow.com/questions/9139472/concatenate-grouped-rows by cc-by-sa and MIT license