sql - 尽管使用了别名,但我从内部查询中找不到列
问题描述
我是 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
我的列名没有任何大写字母,现在这真的让我很困惑。
我将不胜感激
更新: 感谢 Gordan,查询正在运行。但是对于大型数据集,执行时间真的很慢,任何关于如何改进的指针谢谢
解决方案
您还需要在中间子查询中选择它:
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
推荐阅读
- gis - 绘制+100k地理数据时如何避免渲染性能不佳
- javascript - 如何在屏幕上使 div 对齐以考虑滚动条的宽度?
- html - [CSS]视差效果和固定文本
- linux - 在文本文件文件中搜索数字并指定范围和长度 Grep
- jenkins-pipeline - 在向 RocketChat 发出构建通知时构建失败并显示“无协议:/api/v1/login”
- c++ - Visual Studio 2017 的 cppcheck 插件问题“对象引用未设置为对象的实例。”
- excel - VBA复制特定单元格并粘贴到相邻列
- javascript - Javascript - 从外部访问函数闭包中的变量
- google-cloud-platform - 使用 Google IAP 启用 CORS
- r - 编写一个函数,用于将 df1 中的 id 映射到 R 中 df2 中所有可能匹配的 id 列