且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在每个 id 组的列中选择最频繁的值?

更新时间:2022-12-12 10:59:07

您可以使用窗口函数根据用户 ID 的 data1 计数对其进行排名.

You can use a window function to rank the userids based on their count of data1.

WITH cte AS (
SELECT 
    user_id 
  , data1
  , ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY COUNT(data1) DESC) rn
FROM dbo.YourTable
GROUP BY
  user_id,
  data1)

SELECT
    user_id,
    data1
FROM cte WHERE rn = 1