SQL Distinct无法在查询中工作 - 为什么?

时间:2018-04-15 13:53:22

标签: sql impala

我试图展示已播放的10个独特游戏,并在推文中对其进行排序。但是,当我使用 Distinct 时,它仍会在game_id中显示重复项。

正如您在此图片中看到的那样,您会看到许多game_ids

Lots of different game_ids

我在尝试什么:

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

结果: Result of query above 注意:此表是一个视图。

2 个答案:

答案 0 :(得分:0)

如果你想要每场比赛的最大推文,那么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适用于整行,而不仅仅适用于第一列。

答案 1 :(得分:0)

您的查询将返回不同的行,这些行是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