2016-06-01 3 views
2

고객에게 소프트웨어 판매를 저장하는 테이블이 있습니다. 고객은 업그레이드로 인해 테이블에 여러 번 나타날 수 있습니다.고객이 소유 한 버전 번호를 계산하십시오.

Cust ID Version 
------- ------- 
0   5 
1   5 
2   6 
3   6 
4   6.5 
1   7 
4   7 
5   7 

고객이 보유한 최신 버전 번호의 수를 찾고 싶습니다. 즉, 상기 주어진 데이터 :

  • 3 고객 (# 1, # 4, # 5) 자신의 버전 제
  • 2 고객 (# 2, # 3) 자신의 버전 6
  • 1 고객 (# 0)은 버전 5를 소유하고 있습니다.

고객 ID를 알 필요는 없으며 각 버전의 개수 만 알면됩니다.

FWIW, 나는 Access 테이블을 쿼리하는 SQL입니다.

답변

1

각 고객에 대해 최대 Version을 보여주는 쿼리를 생성하십시오.

SELECT 
    y.[Cust ID], 
    Max(y.Version) AS MaxOfVersion 
FROM YourTable AS y 
GROUP BY y.[Cust ID]; 

은 서브 쿼리로 첫 번째를 사용하는 다른 쿼리를 만듭니다. 새 쿼리에서 각 Version 그룹화에 대한 행 수를 계산하십시오.

SELECT 
    sub.MaxOfVersion AS [Version], 
    Count(*) AS [CountOfVersion] 
FROM 
    (
     SELECT 
      y.[Cust ID], 
      Max(y.Version) AS MaxOfVersion 
     FROM YourTable AS y 
     GROUP BY y.[Cust ID] 
    ) AS sub 
GROUP BY sub.MaxOfVersion; 
+0

완벽! 한스 감사합니다! –

관련 문제