나는 각 ID에 대해 변수 내에 텍스트가 있는지에 따라 데이터를 분류하려고합니다. 예를 들어 :데이터 파티션을 기반으로하는 사례 명세서
는ID Groupname
1 A
1 B
1 F
2 D
2 B
2 C
내가 원하는 결과는 내가 다음과 같은 일을 할
ID Groupname Category
1 A AF
1 B AF
1 F AF
2 D D
2 B D
2 C D
것입니다하지만 난/적색 편이는 포스트 그레스에서
Select * ,
CASE WHEN A,F in groupname (partition by id) THEN AF
WHEN D in groupname (partition by id) THEN D
....
ELSE null END
FROM table
답변 동작하지 않습니다 크게 감사하겠습니다!
편집 :
나는 JNevill가 가져왔다 F와 함께 문제를 해결했습니다.
EDIT2 :
한 사용자 만 한 조합을 필요로하는 경우 작동하는 간단한 솔루션을 제안했다. 예 : F 또는 A를 보면 AF입니다. 하지만 A와 F를 볼 필요가 있으면 작동하지 않습니다. 여기
는 간단한 해결책이다SUM (CASE WHEN (20,28,19,27)을 1 단에서 콤보) 난 경우 1,000
(log_id 의한 분할) = 1 이상의 조합을 원한다 나는 매우 긴 코드를 생성하는 다음을해야한다. 이 작업을 수행하는 더 쉬운 방법이 있습니까?
WHEN 합계 ((20,28,19,27)에 1을 더한 다음) 1 (파티션 by log_id) = 1 을 합계 할 때 (1048,598,428에 다음 1 끝) (log_id에 의해 파티션) = 다음 1 당신은 파티션과 사건에 대해 맞아 1000
샘플 데이터에'GROUPNAME'으로'F'가 없습니다. 왜'B'가'AF'라는 가치를 얻겠습니까? 'ID'가 '2'에 A와 F가 있으면 어떻게 될까요? 그것은'D' 또는'AF'를 얻을 것인가 아니면'2'가 그런 상황을 다루는 새로운 기록이있을 것인가? – JNevill