我正在使用oracle数据库10g并尝试计算数据集的控制上限和控制下限。虽然它对于电话号码值似乎毫无用处,但我只是想将其用作学习经验。输出应该具有逐行形式的条目:- 称呼、zip、lcl 和 ucl 值 这将有助于更好地理解数据。
with q as(
select student_id,salutation,zip,first_name,last_name from tempTable)
with r as(
select avg(phone) as average,stddev(phone) as sd from tempTable)
select salutation,zip,average-3*sd as"lcl",average+3*sd as"UCL"
from
q ,r
给出的错误是缺少select语句。请告诉我出了什么问题,我是一个sql新手,自己做不到
最佳答案
使用堆叠 CTE
时,预计第一个 CTE
不需要 With
关键字,而是使用 逗号
在 CTE
名称之前。尝试这个语法。
WITH q
AS (SELECT student_id,
salutation,
zip,
first_name,
last_name
FROM temptable),
r
AS (SELECT Avg(phone) AS average,
STDDEV(phone) AS sd
FROM temptable)
SELECT salutation,
zip,
average - 3 * sd AS"lcl",
average + 3 * sd AS"UCL"
FROM q Cross Join r;
关于sql - 在sql中合并多个 "With"子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28009010/