SQL Distinct 在查询中不起作用 - 为什么?

SQL Distinct not working in query - Why?

我正在尝试展示 10 个已经玩过的独特游戏,并在推文中对它们进行排序。但是,当我使用 Distinct 时,它仍然显示 game_id.

中的重复项

正如您在这张图片下看到的,您会看到很多 game_ids

我在尝试什么:

select distinct game_id, spike, _c0 as tweets_per_minute
from virtual4
order by tweets_per_minute desc
limit 10

结果: 注意:这个table是一个视图。

如果您想要每场比赛的推文数量最多,那么 select distinct 不是正确的方法。试试 row_number():

select game_id, spike, _c0 as tweets_per_minute
from (select v.*,
             row_number() over (partition by game_id order by _c0 desc) as seqnum
      from virtual4 v
     ) v
where seqnum = 1
order by tweets_per_minute desc
limit 10;

select distinct 适用于整行,而不仅仅是第一列。

您的查询将 return 不同的行,这些行是 game_id、spike 和 tweets_per_minute 的组合,然后按 tweets_per_minute 排序。

你可以试试这个,

select game_id, spike, _c0 as tweets_per_minute
from virtual4
where game_id in (select distinct game_id from virtual4 order by game_id)
limit 10