我有一个三列的表格
Product Version Price
1 1 25
1 2 15
1 3 25
2 1 8
2 2 8
2 3 4
3 1 25
3 2 10
3 3 5
我想按产品获取最高价格和最高版本。 因此,在上面的示例中,结果将包含产品 1、版本 3、价格 25。产品 2,版本 2,价格 8。
你能告诉我我该怎么做吗?
我在 Teradata
最佳答案
如果 Teradata 支持 ROW_NUMBER
分析函数:
SELECT
Product,
Version,
Price
FROM (
SELECT
atable.*, /* or specify column names explicitly as necessary */
ROW_NUMBER() OVER (PARTITION BY Product
ORDER BY Price DESC, Version DESC) AS rn
FROM atable
) s
WHERE rn = 1
;
关于SQL Max 跨多个版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18982464/