Sql 尽管使用了别名,但从内部查询中找不到列

Sql 尽管使用了别名,但从内部查询中找不到列,sql,postgresql,amazon-redshift,Sql,Postgresql,Amazon Redshift,我是SQL新手,我想从我的查询中导出一个四分位图。然而,我的查询遇到了一些问题 我已经给出了别名,我正在尝试计算四分位数 这是一个问题 SELECT series, MIN(value) AS minimum, AVG(q1) AS q1, AVG(median) AS median, AVG(q3) AS q3, MAX(value) AS maximum FROM (SELECT series,

我是SQL新手,我想从我的查询中导出一个四分位图。然而,我的查询遇到了一些问题

我已经给出了别名,我正在尝试计算四分位数

这是一个问题

SELECT series,
       MIN(value) AS minimum,
       AVG(q1) AS q1,
       AVG(median) AS median,
       AVG(q3) AS q3,
       MAX(value) AS maximum
FROM 
    (SELECT series,
            PERCENTILE_CONT(0.25) WITHIN GROUP 
                 (ORDER BY value) OVER (PARTITION BY series) AS q1,
            MEDIAN(value) OVER (PARTITION BY series) AS median,
            PERCENTILE_CONT(0.75) WITHIN GROUP 
                 (ORDER BY value) OVER (PARTITION BY series) AS q3
     FROM  
         (SELECT type as series, (a.duration)/(60000) as value
          FROM test.pattern a
          JOIN test.metadata b ON a.id = b.id) AS quartile) AS raw_data
GROUP BY 1
然而,我不断地

column "value" does not exist in raw_data
我的列名没有大写字母,这让我现在很困惑

我会很感激你的帮助

更新: 多亏了戈尔丹,查询工作才得以进行。但是,对于大型数据集,执行时间非常慢,是否有关于如何改进的建议
谢谢

你也需要在中间子查询中选择它:

FROM (SELECT series, value,
---------------------^
             PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY value) OVER (PARTITION BY series) AS q1,
             MEDIAN(value) OVER (PARTITION BY series) AS median,
             PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY value) OVER (PARTITION BY series) AS q3
      FROM (SELECT type as series, (a.duration)/(60000) as value
                FROM test.pattern p JOIN
                     test.metadata m
                     ON p.id = m.id
          ) AS quartile
     ) AS raw_data

非常感谢。我让它工作了。然而,这个查询需要很长时间。任何我可以改进的指针performance@YogeshSingh . . . 你应该问另一个关于性能的问题。确保包含查询,解释它在做什么,并提供有关表的大小和索引信息。