数据一致性

      通过 Group by 去重

SELECT
 user_id ,
 argMax(score, create_time) AS score, 
 argMax(deleted, create_time) AS deleted,
 max(create_time) AS ctime 
FROM test_consistence 
GROUP BY user_id
HAVING deleted = 0;

      函数argMax:argMax(field1,field2):按照 field2 的最大值取 field1 的值

      因此argMax(score, create_time)的含义就是,按照create_time的最大值取score的值,因为create_time代表当前数据的更新时间,因此总能取到最新的数据;

     同理argMax(deleted, create_time)是取最新的deleted标识,来判断数据是否被删除

 
posted on 2024-07-06 05:35  溪水静幽  阅读(6)  评论(0)    收藏  举报