我有一个表格,其中包含该试用版的tryouts
,customerID
,status
以及其他一些包含各种数据的列。
当然,单个customerID
可以有多个tryouts
(在实际表中,第一个试用版是1号,第二个是2号等)。
实施例。
- 客户ID = 1,tryout = 1
- 客户ID = 1,tryout = 2
- 客户ID = 1,tryout = 3
- 客户ID = 2,tryout = 1
- 客户ID = 3,tryout = 1
- 客户ID = 3,tryout = 2
我希望拥有所有不同的customerIDs
,但每个只有一行,其中包含一个表中每个客户的最高tryout
数字,以及来自所有其他列的数据。
防爆。
tryouts
,customerID
,status
,data1
,data2
我怎样才能做到这一点?
答案 0 :(得分:1)
如果您只想要客户ID和试用价值,那么您可以尝试以下方法:
SELECT customerID, MAX(tryout) AS max_tryout
FROM yourTable
GROUP BY customerID
如果您想要整个记录,那么一个选项就是使用ROW_NUMBER()
:
SELECT t.customerID, t.tryout, t.status, t.data1, t.data2
FROM
(
SELECT *, ROW_NUMBER() OVER (PARTITION BY customerID ORDER BY tryout DESC) rn
) t
WHERE t.rn = 1
答案 1 :(得分:0)
尝试
SELECT
CustomerID,
MAX(tryout) AS [Max tryout]
FROM
TheTable
GROUP BY
CustomerID
这可以给你你想要的东西