如何在SQL Server中获取最新和最近的值

开发人员

我有包含与风险相关的数据的表,我必须从“风险表”中获取最新数据和第二秒的最新数据

表中数据如下:

RiskID        RiskName     RiskScore       RiskDate    ItemID      
1             ABC            10          23/10/2013       12            
1             ABC            8           20/12/2013       12 
1             ABC            5           15/01/2014       12
2             BC             9           19/09/2013       12
2             BC             10          17/12/2013       12
2             BC             9           12/01/2014       12

我在哪里寻找结果,如下所示,其中ItemID应该为12

R_ID   R_Name  Recent_R_Date  Recent_R_Score  Second_R_Date   Second_R_Date  ItemID
1       ABC       15/01/2014      5              20/12/2013       8           12
2       BC        12/01/2014      9             17/12/2013        10          12
术语

一种方法(在SQL Server 2008中也适用)

SELECT RiskID, RiskName,
       MAX(CASE WHEN rnum = 1 THEN RiskDate END) RecentDate,
       MAX(CASE WHEN rnum = 1 THEN RiskScore END) RecentScore,
       MAX(CASE WHEN rnum = 2 THEN RiskDate END) SecondDate,
       MAX(CASE WHEN rnum = 2 THEN RiskScore END) SecondScore,
       ItemID
  FROM
(
  SELECT *, ROW_NUMBER() OVER (PARTITION BY RiskID ORDER BY RiskDate DESC) rnum
    FROM Risk
   WHERE ItemID = 12
) q
 WHERE rnum <= 2
 GROUP BY ItemID, RiskID, RiskName
 ORDER BY RiskID

输出:

| 风险| 风险名称| 近期| 最近评分| SECONDDATE | SECONDSCORE | ITEMID |
| -------- | ---------- | ------------ | ------------- |- ---------- | ------------- || -------- |
| 1 | ABC | 2014-01-15 | 5 | 2013-12-20 | 8 | 12 |
| 2 | 卑诗省| 2014-01-12 | 9 | 2013-12-17 | 10 | 12 |

这是SQLFiddle演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在实体框架中获取SQL Server序列的下一个值?

来自分类Dev

如何在SQL Server中的分隔符之前获取第一个值

来自分类Dev

如何在SQL Server中获取最大长度的值

来自分类Dev

如何在SQL Server中获取日期时间重复行?

来自分类Dev

如何在SQL Server 2008中获取特定值的列名

来自分类Dev

如何在SQL Server中获取列明智的数据?

来自分类Dev

如何在SQL的游标结果集中获取行的最新值

来自分类Dev

如何在SQL Server中获取全年的周数

来自分类Dev

如何在SQL中获取第n行的值

来自分类Dev

如何在SQL Server中的表中重复值?

来自分类Dev

如何在SQL Server中获取最大值的多个字段?

来自分类Dev

如何在SQL Server中添加字符串以获取最小值?

来自分类Dev

如何在SQL Server 2008中获取时间总和字段

来自分类Dev

如何在SQL Server的列中获取一些值

来自分类Dev

在SQL Server上获取最近的过去日期值

来自分类Dev

如何在SQL Server中获取不同条件的数据?

来自分类Dev

如何在sql中获取具有指定值的行?

来自分类Dev

如何在SQL中获取最新的更新记录?

来自分类Dev

如何在SQL Server 2008中获取特定值的列名

来自分类Dev

如何在Teradata SQL中跨行获取最大列值?

来自分类Dev

如何在SQL中获取最新数据和先前数据

来自分类Dev

如何在SQL查询中获取点后的值

来自分类Dev

如何在sql中获取列值的连续出现计数?

来自分类Dev

如何在 Reactjs 中获取最新的选定值

来自分类Dev

如何在 SQL Server 中获取表中动态列的值?

来自分类Dev

如何在 SQL Server 中查找当前值以外的值?

来自分类Dev

如何从 django QuerySet 中获取最新和最早的数据

来自分类Dev

SQL - 如何从每个 ID 的上一个日期仅获取最新和最新

来自分类Dev

如何在 SQL Server SELECT 语句中获取以前的值

Related 相关文章

  1. 1

    如何在实体框架中获取SQL Server序列的下一个值?

  2. 2

    如何在SQL Server中的分隔符之前获取第一个值

  3. 3

    如何在SQL Server中获取最大长度的值

  4. 4

    如何在SQL Server中获取日期时间重复行?

  5. 5

    如何在SQL Server 2008中获取特定值的列名

  6. 6

    如何在SQL Server中获取列明智的数据?

  7. 7

    如何在SQL的游标结果集中获取行的最新值

  8. 8

    如何在SQL Server中获取全年的周数

  9. 9

    如何在SQL中获取第n行的值

  10. 10

    如何在SQL Server中的表中重复值?

  11. 11

    如何在SQL Server中获取最大值的多个字段?

  12. 12

    如何在SQL Server中添加字符串以获取最小值?

  13. 13

    如何在SQL Server 2008中获取时间总和字段

  14. 14

    如何在SQL Server的列中获取一些值

  15. 15

    在SQL Server上获取最近的过去日期值

  16. 16

    如何在SQL Server中获取不同条件的数据?

  17. 17

    如何在sql中获取具有指定值的行?

  18. 18

    如何在SQL中获取最新的更新记录?

  19. 19

    如何在SQL Server 2008中获取特定值的列名

  20. 20

    如何在Teradata SQL中跨行获取最大列值?

  21. 21

    如何在SQL中获取最新数据和先前数据

  22. 22

    如何在SQL查询中获取点后的值

  23. 23

    如何在sql中获取列值的连续出现计数?

  24. 24

    如何在 Reactjs 中获取最新的选定值

  25. 25

    如何在 SQL Server 中获取表中动态列的值?

  26. 26

    如何在 SQL Server 中查找当前值以外的值?

  27. 27

    如何从 django QuerySet 中获取最新和最早的数据

  28. 28

    SQL - 如何从每个 ID 的上一个日期仅获取最新和最新

  29. 29

    如何在 SQL Server SELECT 语句中获取以前的值

热门标签

归档