2013-01-09 4 views
0

다음 도움말을 사용하여 SQL 문제를 해결할 수 있습니다.SQL Server - 모든 행에 대해 한 열에 최대 값 반환

다음과 같은 열과 데이터가있는 테이블이 있습니다.

CUSTOMER PAYMENT_YEAR BILLS_PER_YEAR BILL_NUMBER 
Chris 2010   1    1 
Chris 2010   2    2 
Chris 2010   3    3 

3 행 모두를 반환하지만 3 행 모두에서 최대 bills_per_year 값을 반환하고 싶습니다. 이렇게하고 싶습니다.

CUSTOMER PAYMENT_YEAR BILLS_PER_YEAR BILL_NUMBER 
Chris  2010   3    1 
Chris  2010   3    2 
Chris  2010   3    3 
+0

내부 조인 하위 쿼리는 bills_per_year에 대해 3 행을 반환하기 때문에 작동하지 않았습니다. –

+0

그룹에서 bill_number를 (를) 유지해야하므로 bills_per_year에서 max가 작동하지 않습니다. –

답변

2

효과가 있습니까?

+0

표 SLX_ACCOUNTID, ASSET_NUMBER, PAYMENT_YEAR, BILL_NUMBER, MAX (BILLS_PER_YEAR) 이상 (PARTITION BY SLX_ACCOUNTID, ASSET_NUMBER, PAYMENT_YEAR) BILLS_PER_YEAR FROM TABLE을 선택하십시오. –

+0

그게 효과가 !!!! 모두들 대단히 감사합니다. –

1

이것이 의미입니까?

SELECT 
    CUSTOMER, 
    PAYMENT_YEAR, 
    MAX(BILLS_PER_YEAR) OVER(PARTITION BY CUSTOMER, PAYMENT_YEAR) BILLS_PER_YEAR, 
    BILL_NUMBER 
FROM TableName 
관련 문제