2013-10-08 4 views
1

각 주문 항목이 들어있는 많은 주문이 포함 된 데이터 세트가 있습니다. 나는 VALUE와NULL 값을 사용하여 문자열 그룹화

order_id status 
2933475 PAID \N 
2933475 PAID \N 
2933475 PAID VALUE 
2933475 PAID \N 

라인 항목이있는 항목에 나타나거나 전혀 할 수 .. 특정 순서로 항목을 찾고 논리를 가지고있다. order_id별로 그룹화 할 때 각 주문 ID에 대해 VALUE를 표시하고 싶으면 VALUE를 표시하고 싶으면 \ n을 지정합니다.

COALESCE()을 사용하면이 작업을 수행 할 수 있다고 생각했지만이 순서를 그룹화 할 때 NULL이 계속 표시됩니다.

답변

1

테이블/쿼리 구조에 따라이 같은 작동 할 수 있습니다

select 
    order_id, 
    max(case when status = 'VALUE' then status else NULL end) as status 
from table 
group by order_id 
+0

당신을 감사합니다! NULL을 최대 값으로 고려할 가치가 없다고 생각했기 때문에 이것을 고려하지 않았습니다. 다시 책을 칠 필요가있어! – Jonathan

+0

문제 없습니다. 집계에서는 NULL이 사용되지 않습니다. 따라서 NULL, 1 및 2의 평균은 1.5입니다. 명심하는 것이 유용합니다! 귀하의 질문에 답이 있으면 이것을 정답으로 표시하십시오. 감사 :) –