2017-03-28 6 views
0

나는이 다음 표 :오라클 SQL의 콘텐츠를 기반으로 선택

AGENT CLIE 
----------- 
A   1 
B   1 
A   2 
B   2 
C   1 

내가 원하는 결과는 다음과 같습니다

AGENT CLIE 
----------- 
A   2 
B   2 
C   1 

그래서 내가 존재하지, 그렇지 않으면를 표시하는 경우에만 가장 높은 순위의 고객을 표시하려면 기입.

A와 B의 경우 상위 클라이언트가 있지만 c의 경우는 없습니다.

어떻게하면됩니까? "2"가정

답변

0
select agent, max(clie) 
from your_table 
group by agent 
+0

이, 감사를! – code4fun

+0

이 코드 단편은 질문을 해결할 수 있지만 [설명 포함] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-base- answers)은 고객의 품질을 향상시키는 데 정말로 도움이됩니다. 게시하다. 앞으로 독자의 질문에 답하고 있으며 코드 제안의 이유를 알지 못할 수도 있습니다. –

0

는 MAX 기능을 사용할 수 있습니다, 여기에 "1"보다 더 나은 순위입니다 :

SELECT 
    AGENT, max(CLIE) 
FROM 
    table 
GROUP BY 
    AGENT 

(optional) ORDER BY AGENT 
+0

Arigato gozaimas! – code4fun

+0

도움이된다면 내 답변에 투표 해주세요. :) – Yoav24

0

다른 사람이 언급 한 것처럼, 당신은 단지 agent과의 최대 clie하려면 당신이 다른 열이 있고 최대 clie와 행에 해당하는 너무 출력 사람들을 원하는 경우, 창을 사용

Select agent, max(clie) 
From your_table 
Group by agent 

: 출력은 다음 간단한 집계를 사용 기능 row_number (또는 rankagent에 대한 최대 클리에 모든 행하려는 경우) :

Select * 
From (
    Select t.*, 
    Row_number() over (
     Partition by agent 
     Order by clie desc nulls last 
    ) as rn 
    From your_table t 
) t 
Where rn = 1; 
+0

Merci beaucoup mon amie – code4fun

+0

@ code4fun - Bienvenue. 기꺼이 도와주세요. :-) – GurV