如何从配置单元表中查找具有where条件的上次更新的记录id

mi7gmzs6  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(294)

如何计算状态为1的配置单元表中的最新用户ID?我们每天都在配置单元中插入增量数据(userid、status、date)。配置单元表包含具有不同日期的重复用户标识。所以我尝试了一个查询,但得到了错误的结果:

select count(t1.userID) 
  from (select userId, 
               max(date) as date 
          from test group by userId) t1 
  join (select userId 
          from test 
         where status=1) t2 
    on t1.userId=t2.userID;

请帮忙。

gopyfrb3

gopyfrb31#

类似的方法应该有用:

SELECT
    T1.USER_ID, 
FROM 
    USER_TABLE T1
    INNER JOIN (
        SELECT 
            USER_ID, 
            MAX(UPDATE_DATE) AS MAX_DATE
        FROM 
            USER_TABLE
        GROUP BY USER_ID
    ) T2
    ON T1.USER_ID = T2.USER_ID AND T1.UPDATE_DATE = T2.MAX_DATE
WHERE T1.STATUS = 1
sxpgvts3

sxpgvts32#

这工作很好,但有点慢,有没有更好的选择。
选择count(1)from(select a.userid,a.date,a.status from test a join(select userid,max(date)date from test group by userid)b on(a.userid=b.userid and a.date=b.date),其中a.status=1)c;

相关问题