如何过滤雅典娜(Presto)中的聚合价值



我无法在雅典娜控制台的任何条件下运行一个简单的SQL选择。以下是详细信息:

SELECT name, count(*) AS c
FROM target_reddit_movie
GROUP BY name
HAVING c > 1
ORDER BY c DESC
LIMIT 10

我有一个错误 SYNTAX_ERROR: line 1:74: Column 'c' cannot be resolved

看来雅典娜无法识别as列名。我该如何使其工作?它使用其他语法吗?

逻辑上都这样(执行引擎可以免费选择其他执行策略(:

  1. 使用WHERE(如果有的话;当然,您的情况没有WHERE(
  2. GROUP BY聚合是计算
  3. HAVING应用于聚合值 - 您可以参考聚合(例如count(*)(和GROUP BY列(例如,在您的情况下name(
  4. SELECT分配已应用(从现在开始,c是指 count(*)(
  5. 使用ORDER BY,因此可以使用c
  6. 使用LIMIT

另请参阅SELECT

的工作和PRESTO文档的组合和PRESTO文档。

最新更新