2016-06-01 10 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)自身のバージョン7
  • 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

完璧!ありがとうHansUp! –

関連する問題