当前位置: 首页 > 面试题库 >

对多个变量使用RANK的快速帮助

叶声
2023-03-14
问题内容

我需要一些帮助,以便在SQL Server 2008中为以下内容编写SELECT语句:(示例表)

  Date                       ProductID                       Year                       Price   
  01-01-10                   01                              2009                       1.00   
  02-01-10                   01                              2009                       2.00   
  03-01-10                   01                              2010                       3.00   
  04-01-10                   01                              2010                       4.00   
  05-01-10                   01                              2011                       5.00   
  06-01-10                   01                              2011                       6.00   
  01-01-10                   02                              2009                       1.00   
  02-01-10                   02                              2009                       2.00   
  03-01-10                   02                              2010                       3.00   
  04-01-10                   02                              2010                       4.00   
  05-01-10                   02                              2011                       5.00   
  06-01-10                   02                              2011                       6.00   
  01-01-10                   03                              2009                       1.00   
  02-01-10                   03                              2009                       2.00   
  03-01-10                   03                              2010                       3.00   
  04-01-10                   03                              2010                       4.00   
  05-01-10                   03                              2011                       5.00   
  06-01-10                   03                              2011                       6.00   
  01-01-10                   04                              2009                       1.00   
  02-01-10                   04                              2009                       2.00   
  03-01-10                   04                              2010                       3.00   
  04-01-10                   04                              2010                       4.00   
  05-01-10                   04                              2011                       5.00   
  06-01-10                   04                              2011                       6.00

对于每个唯一的ProductID-
Year组合(例如01-2009、03-2011),我都需要掌握最新日期。实际的数据组织得不太好-01-2009年可能只有1条记录,而03-2009年可能只有15条记录。

我认为我必须使用,DENSE RANK但不确定。


问题答案:

row_number应该足以满足您的需求。

注意:我假设您的Date列是真正的Date或DateTime数据类型,而不是您显示的形式的字符串。如果该假设是错误的,则需要进行一些其他的字符串操作才能将Date转换为可排序的格式

;with cteRowNumber as (
    select Date, ProductID, Year, Price, 
           row_number() over (partition by ProductID, Year order by Date desc) as RowNum
        from YourTable
)
select Date, ProductID, Year, Price
    from cteRowNumber
    where RowNum = 1


 类似资料:
  • 问题内容: 我正在尝试使用NSLocalizedString本地化我的应用程序。当我导入XLIFF文件时,大多数工作都像一个超级按钮,但是有些却没有,有些字符串没有本地化。我注意到问题出在NSLocalizedString中,其中包含一些变量,例如: 要么 也许这不是这类东西的正确语法。有人可以向我解释如何迅速做到这一点?非常感谢你。 问题答案: 您可以在中使用format参数,因此您的示例如下所

  • 问题内容: 我知道这个答案已经以其他形式发布在这里,但是我想了解更多有关迅速覆盖实例变量的信息。 假设我有这段代码 好。从我读到的内容来看,常量需要覆盖前缀。其他答案说我应该声明setter和getter?为什么?我真的不在乎这两个。我只需要替换值即可。我真的不能使用重写,因为我是从UIView继承的,这可能很危险(我认为)。 任何建议都欢迎。 问题答案: 如您所说,您不能简单地在子类中重新定义常

  • 问题内容: 我在检测有人何时按下音量调高按钮时遇到问题。目前,我只是播放文件,但我想知道用户何时按下按钮以在音量变化时显示警报。我正在开发Swift,并且正在使用AVFoundation创建此播放器。目前,我找不到适用于Swift的东西。我是这种语言的新手。 问题答案: 这应该可以解决问题。

  • 本文向大家介绍python实现将列表中各个值快速赋值给多个变量,包括了python实现将列表中各个值快速赋值给多个变量的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说啦,还是直接看代码吧! list1 = [1,2,3,4] a,b,c,d = list1 则 a = 1 b =2 等 这种方式只有当左边的操作数个数和list1长度相同时,才可以这么做,不然报错. 我们假设我们有一个lis

  • 问题内容: 我试图设置一个变量,该变量位于该闭包内部的闭包外部,但最终不会被设置。然而,我设置变量的值 是 正在打印到控制台。同样,在设置返回变量并自行打印之后,将正确的值打印到控制台。当我返回变量时就会出现问题。其值与初始化时的值相同。这是一些伪代码: 这是不起作用的实际代码: 问题答案: .observeSingleEvent正在异步工作。 您可以执行以下操作: 然后,您可以在任何需要的地方使