【问题标题】:HIVE column alias not showing in output when queried on same table在同一个表上查询时,HIVE 列别名未显示在输出中
【发布时间】:2023-03-08 01:33:01
【问题描述】:

从事 HIVE 运动。

我有一个表movierating,字段为movieid,rating。我需要写信查询以找出评分超过 2 的电影的平均评分。 预期输出格式:|Movieid|平均评分| 数据:

movie1 2
movie1 3
movie1 5
movie2 4
movie2 5
movie3 6
movie3 3
movie6 2
movie6 3     

预期输出是:电影的平均评分,评分大于 2。 电影平均收视率 电影2 4.5 电影3 4.5

我的这个查询不起作用。它根本没有显示列别名。我也试过给```。但徒劳无功。

select movieid as Movieid, avg(rating) as averagerating
from movierating
where movieid not in (select m.movieid
                      from movierating m
                      where m.rating <= 2
                     )
group by movieid;

【问题讨论】:

  • 感谢您的编辑。我会尽量遵循这些准则。

标签: sql hive average alias columnname


【解决方案1】:

预期输出是:电影的平均评分,评分大于 2。

我将这个问题解释为“平均评分大于 2”。如果是这样,请使用having:

select movieid, avg(rating) as averagerating
from movierating
group by movieid
having averagerating > 2;

如果您只想考虑评分大于 2 的电影的平均评分,请使用where:

select movieid, avg(rating) as averagerating
from movierating
where rating > 2
group by movieid;

【讨论】:

  • 我曾尝试过这些基本查询,但徒劳无功。我需要列名,并且应该避免使用评级为 2 的电影。我在输入中给出了更多样本。你能帮忙吗? ?
猜你喜欢
  • 2020-02-04
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 2018-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多