在分开的列中获取最大日期(月和年)

卡洛斯姆

我有这张桌子:

Month   Year    Provider    Number
1       2015    1           345
2       2015    1           345
3       2015    1           345
12      2015    2           444
1       2016    2           444

假设我想按提供商获取所有不同的数字,但只能获取最大月份和最大年份,如下所示:

Month   Year    Provider    Number
3       2015    1           345
1       2016    2           444

我有一个我想改进的丑陋查询:

SELECT (SELECT max([Month]) 
        FROM dbo.Info b
        WHERE b.Provider = a.Provider
          AND b.Number = a.Number
          AND [Year] = (SELECT max([Year]) 
                          FROM dbo.Info c
                         WHERE c.Provider = a.Provider
                           AND c.Number = a.Number)) AS [Month],
        (SELECT max([Year]) 
           FROM dbo.Info d
          WHERE d.Provider = a.Provider
            AND d.Number = a.Number)) AS [Year],
        a.Provider,
        a.Number
 FROM dbo.Info a
SQLChao

您可以使用row_number和cte

;WITH cte AS (
  SELECT 
    *,
    ROW_NUMBER() OVER (PARTITION BY Provider ORDER BY [Year] DESC, [Month] DESC) as rNum
  FROM Info)

SELECT *
FROM cte where rNum = 1

如果要创建视图,则

CREATE VIEW SomeViewName
AS

WITH cte AS (
  SELECT 
    *,
    ROW_NUMBER() OVER (PARTITION BY Provider ORDER BY [Year] DESC, [Month] DESC) as rNum
  FROM Info)

SELECT *
FROM cte where rNum = 1

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在单独的列中获取最大日期(月和年)

来自分类Dev

python:从年-月-日的列中获取日期的列

来自分类Dev

获取年,月和日SQL中的日期差

来自分类Dev

获取日期差异和输出:年-月

来自分类Dev

年列和月列进入日期列R

来自分类Dev

MySQL如何获取月和年与日期格式分隔

来自分类Dev

试图获取当前日期仅为月,日和年

来自分类Dev

如何从年,月和日获取日期对象?

来自分类Dev

从“日期”列中以连续字符串格式提取“年”,“月”和“日”

来自分类Dev

将日期时间列分为年,月和周

来自分类Dev

如何对列求和并基于月和年获取行

来自分类Dev

Eonasdan DateTimePicker - 获取显示日期(年/月)

来自分类Dev

获取一周的开始和结束日期。用户输入了月,周和年

来自分类Dev

使用 assign 和 lambda 将年和月列合并为 1 个日期列

来自分类Dev

如何从1970年1月1日在Lua以来经过的秒数中获取日期(月,日,年)?

来自分类Dev

用年和月构造日期

来自分类Dev

根据年,月和日创建日期

来自分类Dev

MySQL 日期介于月和年之间

来自分类Dev

python从输入序列中获取最大日期和最大时间

来自分类Dev

从Jira的日期和时间字段获取月,年或日以进行过滤器查询

来自分类Dev

从Jira的日期和时间字段获取月,年或日以进行过滤器查询

来自分类Dev

如何将日期列从“月年”(例如 2018 年 3 月)转换为 SQLite 中的 ISO 格式?

来自分类Dev

SQL从两个DateTime列中获取最大日期和时间

来自分类Dev

根据按日期分组的枚举值获取多列中的最大分数和名称

来自分类Dev

MySQL按年和月获取平均值和列和组的总和

来自分类Dev

如何从日期Sql查询中获取日和月?

来自分类Dev

与日期字符串分开获取月份和日期

来自分类Dev

如何在Oracle SQL中以日文格式(2008年12月31日)获取日期

来自分类Dev

根据日期范围从月表 MySQL 中获取数据(2016 年 1 月 1 日至 2016 年 4 月 1 日之间的前数据)

Related 相关文章

  1. 1

    在单独的列中获取最大日期(月和年)

  2. 2

    python:从年-月-日的列中获取日期的列

  3. 3

    获取年,月和日SQL中的日期差

  4. 4

    获取日期差异和输出:年-月

  5. 5

    年列和月列进入日期列R

  6. 6

    MySQL如何获取月和年与日期格式分隔

  7. 7

    试图获取当前日期仅为月,日和年

  8. 8

    如何从年,月和日获取日期对象?

  9. 9

    从“日期”列中以连续字符串格式提取“年”,“月”和“日”

  10. 10

    将日期时间列分为年,月和周

  11. 11

    如何对列求和并基于月和年获取行

  12. 12

    Eonasdan DateTimePicker - 获取显示日期(年/月)

  13. 13

    获取一周的开始和结束日期。用户输入了月,周和年

  14. 14

    使用 assign 和 lambda 将年和月列合并为 1 个日期列

  15. 15

    如何从1970年1月1日在Lua以来经过的秒数中获取日期(月,日,年)?

  16. 16

    用年和月构造日期

  17. 17

    根据年,月和日创建日期

  18. 18

    MySQL 日期介于月和年之间

  19. 19

    python从输入序列中获取最大日期和最大时间

  20. 20

    从Jira的日期和时间字段获取月,年或日以进行过滤器查询

  21. 21

    从Jira的日期和时间字段获取月,年或日以进行过滤器查询

  22. 22

    如何将日期列从“月年”(例如 2018 年 3 月)转换为 SQLite 中的 ISO 格式?

  23. 23

    SQL从两个DateTime列中获取最大日期和时间

  24. 24

    根据按日期分组的枚举值获取多列中的最大分数和名称

  25. 25

    MySQL按年和月获取平均值和列和组的总和

  26. 26

    如何从日期Sql查询中获取日和月?

  27. 27

    与日期字符串分开获取月份和日期

  28. 28

    如何在Oracle SQL中以日文格式(2008年12月31日)获取日期

  29. 29

    根据日期范围从月表 MySQL 中获取数据(2016 年 1 月 1 日至 2016 年 4 月 1 日之间的前数据)

热门标签

归档