sql - 按另一列的最大值选择
问题描述
例如,我有一张价格变化的表格。
TABLE
(
ID INT,
ProductID INT,
ChangeDate DATE,
PriceOld MONEY,
PriceNew MONEY
)
我需要为每个产品选择实际价格,即选择 PriceNew 其中 ChangeDate 是每个产品的最大值
解决方案
SELECT ProductID,PriceNew
FROM
(
SELECT *, ROW_NUMBER() OVER(PARTITION BY ProductID ORDER BY ChangeDate DESC) RN FROM Table1
) X
WHERE RN = 1
推荐阅读
- python - 如何在python中编写逻辑增长模型?
- sql - sql将查询转发到teradata?
- html - 使用 box-shadow 或任何 css 技巧更改样式
- scala - Scala 标准库中从 Any 到 Unit 的常量函数
- flutter - 向上滚动时固定项目
- pyspark-sql - Spark SQL - 在列名中使用逗号为列命名
- c# - .Net核心中间件httpContext不支持并发读写
- c - 为什么“char 数组”需要两个“[]”,而“int 数组”需要一个“[]”?
- .net - Excel 加载项 - 发生意外错误 - 处理请求时出现内部错误
- asp.net-core - .NET Core 3 rc1 到最终升级:Visual Studio 2019 中缺少