Sql 每人每月最新一行

Sql 每人每月最新一行,sql,apache-spark-sql,pyspark-sql,Sql,Apache Spark Sql,Pyspark Sql,我需要得到每个人每月一行,该行应该是该月的最长日期 现有数据: 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

我需要得到每个人每月一行,该行应该是该月的最长日期

现有数据:

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

我不知道怎样才能做到这一点。非常感谢您的帮助。

您可以在子查询中使用聚合,并通过
中的
操作符将它们连接起来:

select *
  from tab
 where (person,date) in
  (
   select person,max(date)
     from tab
    group by person,month(date),year(date)
   )

提示:
MAX()
分组依据
提示:自左加入?使用NOW()。返回,但您的答案显示为
已删除
。这就是为什么要把它挂起来。好吧,意识到我现在忘了()然后:)@RatulSharker