SQL Server - 查询查找最热门关键字的用户

时间:2016-10-30 13:59:33

标签: sql sql-server sql-server-2014

在SQL Server 2014中,我有一个表look_table,列出了用户在我的应用中使用相关user_id查找的所有关键字(带有重复项)。因此该表有2列:keyword,user_id。

目标:在表格中选择3个最受欢迎的关键字,找到所有这3个关键字的用户。

到目前为止,我列出了3个最受欢迎的关键字:

select top 3 keyword
from look_table
group by keyword
order by count(*) desc

但是,我无法获得一直在寻找所有这些关键字的用户。如果有人会帮忙,那就太好了。)

2 个答案:

答案 0 :(得分:2)

您可以使用子查询:

SELECT user_id
FROM look_table
WHERE keyword IN (
  select top 3 keyword
  from look_table
  group by keyword
)
GROUP BY user_id
HAVING count(distinct keyword) = 3

答案 1 :(得分:2)

如果你想要这三个,那就有点棘手了。这是一种方法:

with k as (
      select top 3 keyword
      from look_table
      group by keyword
      order by count(*) desc
     )
select lt.user_id
from look_table lt join
     k
     on lt.keyword = k.keyword
group by lt.user_id
having count(distinct lt.keyword) = 3;