WITH ranked_users AS ( SELECT user_id, duration, RANK() OVER (PARTITION BY dt ORDER BY duration DESC) AS rank FROM active_user_di WHERE dt BETWEEN '2022-11-01' AND '2022-11-30' ) SELECT user_id, duration FROM ranked_users WHERE rank <= 10;