【发布时间】:2015-03-11 03:31:59
【问题描述】:
我想创建一个查询来执行以下操作,但我遇到了问题:
我有一个包含列的数据库表:
- TestYear(整数,例如 2014)
- 日期(日期,即给定年份的一组日期)
- 每日最差值
- RunningValue
主键是TestYear + Date
我想得到:
- LAST RunningValue 按日期排序(即最终值)
- MINIMUM WorstValue(即最差值)
- 每测试年
这基本上是每个测试年的单行摘要。是否可以使用窗口函数来做到这一点?非常感谢您提供的任何帮助。
【问题讨论】:
-
您可以使用First_Value 或Last_Value 来获取Last Running 值和Minimum Worst Value。Per Test Year 不清楚。
-
谢谢,所以我想要类似以下内容:SELECT MIN(WorstValue), LAST_VALUE(RunningValue) OVER (PARTITION BY TestYear ORDER BY Date) FROM MyTable GROUP BY TestYear 但这不起作用
-
我认为您的 RunningValue 一定是正确的。是什么导致您按测试年份进行分区。您应该相应地提供示例数据。
标签: sql sql-server sql-server-2014 window-functions