sql - 如何按月份和业务区域只选择最终值?

标签 sql sql-server tsql

我有下表,我想根据业务领域只选择上个月。

这些原始表:

fk_month    fk_business_area
201706       8
201707       25
201707       27
201707       9
201707       8
201707       28
201707       26
201708       9

选择后,我想要这个结果:

fk_month    fk_business_area
201707      25
201707      27
201707      8
201707      28
201707      26
201708      9

问候。

最佳答案

你可以做一个 MAX() 聚合:

Select   Max(fk_month) As fk_month,
         fk_business_area
From     TheseOriginalTable
Group By fk_business_area

您还可以使用窗口函数来查找最近的一个:

;With Cte As
(
    Select  *,
            Row_Number() Over (Partition By fk_business_area Order By fk_month Desc) RN
    From    TheseOriginalTable
)
Select  fk_month, fk_business_area
From    Cte
Where   RN = 1

关于sql - 如何按月份和业务区域只选择最终值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45240003/

相关文章:

sql - 如何将其他两个表的主键插入表中以进行每种组合?

sql-server - T-sql : how to perform optimised Paging?

MySQL,从一张表中加入两行并忽略双胞胎

sql - 查找 SQL 2000 数据库中所有可为 Null 的列

sql - 如何在 SQL Server 2008 中重建 View

sql - 如何使用表变量作为 OPENQUERY 的参数

sql-server - 选择日期时间值之间的行的 SQL 语法是什么

php - 使用 SQL 选择查询的结果来更新表

sql-server - VS 2010 数据库项目 - SQL03006 错误

c# - 如何在使用池时测量 SqlConnection 上的登录时间?