每人每月最新行数
Latest row per person per month
我需要每个月每个人一行,并且该行应该是该月的最大日期。
可用数据:
person date value
a jan/1/2019 10
a jan/2/2019 20
a feb/3/2019 30
b jan/10/2019 20
b jan/20/2019 30
b feb/1/2019 40
b feb/12/2019 30
期望的输出:
a jan/2/2019 20
a feb/3/2019 30
b jan/20/2019 30
b feb/12/2019 30
我不知道如何做到这一点。非常感谢任何帮助。
您可以在子查询中使用聚合并通过 in
运算符连接它们:
select *
from tab
where (person,date) in
(
select person,max(date)
from tab
group by person,month(date),year(date)
)
我需要每个月每个人一行,并且该行应该是该月的最大日期。
可用数据:
person date value
a jan/1/2019 10
a jan/2/2019 20
a feb/3/2019 30
b jan/10/2019 20
b jan/20/2019 30
b feb/1/2019 40
b feb/12/2019 30
期望的输出:
a jan/2/2019 20
a feb/3/2019 30
b jan/20/2019 30
b feb/12/2019 30
我不知道如何做到这一点。非常感谢任何帮助。
您可以在子查询中使用聚合并通过 in
运算符连接它们:
select *
from tab
where (person,date) in
(
select person,max(date)
from tab
group by person,month(date),year(date)
)