2012-10-31 3 views
0

예를 들어 판매자별로 상위 10 위 고객 만 얻고 싶습니다. 그러면 (상위 10 개가없는) 다음과 같이 보입니다.다른 필드로 가장 먼저 정렬 된 쿼리에서 최상위 10 개 (최상위 10 개)을 얻는 방법?

Select seller, customer, sells from table order by seller asc, sells desc 

그러나이 값은 모든 값을 부여합니다. 나는 각 판매자에 대해 처음 10 명의 고객 만 갖고 싶습니다.

ms 액세스 2003에서도 가능합니까? 당신은 10 개 이상의 수익을 얻을 수 있도록 MS 액세스, 일치를 반환

SELECT seller, 
     customer, 
     sells 
FROM table a 
WHERE customerid IN (SELECT TOP 10 customerid 
         FROM table b 
         WHERE b.sellerid = a.sellerid 
         ORDER BY sells DESC) 
ORDER BY seller ASC, 
      sells DESC 

참고 :의 라인에)

답변

2

, 예, 나에게 힌트, 감사를드립니다하시기 바랍니다. 정확한 10이 필요한 경우 고유 ID로 주문하고 판매 할 수 있습니다.

+0

나는 약간의 피드백을 테스트하고 제공 할 것이다. 그것은 좋은 것처럼 보이지만 내 맥락에서 쿼리는 매우 복잡합니다. 나는 그것을 구현하려고 노력할 것이다. 그러나 더 간단한 해결책이 있다면, 시간이 걸릴 것이다.) –

+0

그룹 당 최고 * n *을 얻는 더 간단한 해결책은 없다. – Fionnuala

+0

좋아, 고마워;) 내가 여기서 본 것에서 나는 그것이 효과가 있다고 생각한다. –

관련 문제