SQL根据两个条件返回排名最高的记录

詹姆士

我正在努力编写一个查询,该查询将针对两个条件对记录进行排名,并返回第一个匹配的条件。

例如,这是我的数据的简化版本:

订阅编号 状态 开始日期 用户
1个 取消 01/01/2021 12
2 等候接听 02/01/2021 12
3 等候接听 03/01/2021 12
4 取消 04/01/2021 15
5 积极的 05/01/2021 15
6 等候接听 06/01/2021 15
7 取消 07/01/2021 15

用户可以有多个订阅,我正在尝试为每个用户返回一个订阅,作为一种“最相关的订阅”。每个用户的定义如下:

IF user has any active subscriptions THEN return the most recent active subscription
ELSE IF user has any on-hold subscriptions THEN return the most recent on-hold subscription
ELSE IF user has any cancelled subscriptions THEN return the most recent cancelled subscription

所以对于以上数据我想看看

用户 订阅编号 状态 开始日期
12 3 等候接听 03/01/2021
15 5 积极的 05/01/2021

任何帮助表示赞赏

戈登·利诺夫

您可以使用row_number()

select s.*
from (select s.*,
             row_number() over (partition by user
                                order by (status = 'Active') desc,
                                         (status = 'On hold') desc,
                                         (status = 'Cancelled') desc,
                                         start_date desc
                               ) as seqnum
      from subscriptions s
     ) s
where seqnum = 1;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL根据两个条件返回排名最高的记录

来自分类Dev

如何合并两个pd数据帧,根据得分对排名重新排序,并返回整行以获得最高排名?

来自分类Dev

如何基于两个条件之一检索排名最高的项目

来自分类Dev

SQL两个表需要根据联合中的排名从任一表返回值

来自分类Dev

根据两个条件选择最新记录

来自分类Dev

根据两个条件从单列中选择记录

来自分类Dev

根据两个条件返回1行

来自分类Dev

SQL对两个表的排名

来自分类Dev

编写查询以根据某种条件从一个记录生成两个记录

来自分类Dev

编写查询以根据某种条件从一个记录生成两个记录

来自分类Dev

如何根据条件合并两个 SQL Server 表?

来自分类Dev

根据两个变量的值进行排名-r

来自分类Dev

如果记录有两个条件,如何获取Rails 4返回true否则返回false?

来自分类Dev

如果记录有两个条件,如何获取Rails 4返回true,否则返回false?

来自分类Dev

如何根据两个表中的两个不同属性计算排名?

来自分类Dev

函数根据参数从两个查询之一返回记录集

来自分类Dev

根据两个条件进行过滤

来自分类Dev

根据两个条件删除行

来自分类Dev

如何在HashMap <Integer,String>中获得两个最高值,从而进行排名

来自分类Dev

如何在HashMap <Integer,String>中获得两个最高值,从而进行排名

来自分类Dev

范围内的最高排名-范围内的两个匹配数据集

来自分类Dev

SQL联接两个记录

来自分类Dev

SQL查询从两个查询的结果返回0或1作为一条记录

来自分类Dev

基于两个子表的条件比较汇总的返回记录

来自分类Dev

在SAS / SQL中根据条件删除两个变量分组

来自分类Dev

Mongodb中根据两个日期的差异统计记录

来自分类Dev

如何根据引用星形模式中两个表的度量进行排名?

来自分类Dev

SQL CASE返回两个值

来自分类Dev

SQL SELECT IN返回两个属性

Related 相关文章

  1. 1

    SQL根据两个条件返回排名最高的记录

  2. 2

    如何合并两个pd数据帧,根据得分对排名重新排序,并返回整行以获得最高排名?

  3. 3

    如何基于两个条件之一检索排名最高的项目

  4. 4

    SQL两个表需要根据联合中的排名从任一表返回值

  5. 5

    根据两个条件选择最新记录

  6. 6

    根据两个条件从单列中选择记录

  7. 7

    根据两个条件返回1行

  8. 8

    SQL对两个表的排名

  9. 9

    编写查询以根据某种条件从一个记录生成两个记录

  10. 10

    编写查询以根据某种条件从一个记录生成两个记录

  11. 11

    如何根据条件合并两个 SQL Server 表?

  12. 12

    根据两个变量的值进行排名-r

  13. 13

    如果记录有两个条件,如何获取Rails 4返回true否则返回false?

  14. 14

    如果记录有两个条件,如何获取Rails 4返回true,否则返回false?

  15. 15

    如何根据两个表中的两个不同属性计算排名?

  16. 16

    函数根据参数从两个查询之一返回记录集

  17. 17

    根据两个条件进行过滤

  18. 18

    根据两个条件删除行

  19. 19

    如何在HashMap <Integer,String>中获得两个最高值,从而进行排名

  20. 20

    如何在HashMap <Integer,String>中获得两个最高值,从而进行排名

  21. 21

    范围内的最高排名-范围内的两个匹配数据集

  22. 22

    SQL联接两个记录

  23. 23

    SQL查询从两个查询的结果返回0或1作为一条记录

  24. 24

    基于两个子表的条件比较汇总的返回记录

  25. 25

    在SAS / SQL中根据条件删除两个变量分组

  26. 26

    Mongodb中根据两个日期的差异统计记录

  27. 27

    如何根据引用星形模式中两个表的度量进行排名?

  28. 28

    SQL CASE返回两个值

  29. 29

    SQL SELECT IN返回两个属性

热门标签

归档