문제

SQLITE와 함께 Group_Concat을 사용하여 다음을 수행하는 방법을 알고 있습니다.

id - f1 - f2 - f3
 1 -  1 -  a - NULL
 2 -  1 -  b - NULL
 3 -  2 -  c - NULL
 4 -  2 -  d - NULL

ID, F1, Group_Concat (F2), F3의 F3 By F1을 선택하십시오.

 result:
 2 -  1 - a,b - NULL
 4 -  2 - c,d - NULL

보시다시피, ID의 1과 3이 삭제되어 예상되는 동작입니다. 그러나 나는 필요할 것이다 :

 1 -  1 -  a - a,b
 2 -  1 -  b - a,b
 3 -  2 -  c - c,d
 4 -  2 -  d - c,d

따라서 모든 레코드가 반환되고 다른 필드 (F3)가 Group_Concat으로 업데이트되었습니다.

이것이 SQLite에서 어떻게 할 수 있는지 아십니까?

고맙습니다

도움이 되었습니까?

해결책

왜 이것을 원하는지 잘 모르겠지만 여기에 간다 :

select 
  outer_t.id
 ,outer_t.f1
 ,outer_t.f2
 ,inline_view.groupfoo
 from t as outer_t 
 left join (
  select 
      f1
     ,group_concat(f2) as groupfoo 
    from t 
    group by f1
 ) inline_view on inline_view.f1 = outer_t.f1
;

다른 팁

임베디드 SQL 문을 사용하십시오

select id, f1, f2, (select group_concat(f2) from t t2 where t2.f1 = t1.f1)
from t t1
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top