SELECT
f.*,
q.day_avg_gmv
FROM
fact_purchases AS f
JOIN (
SELECT
ds,
AVG(gmv) AS day_avg_gmv
FROM
fact_purchases
WHERE
istest = FALSE
GROUP BY
ds
) AS q
ON q.ds = f.ds
WHERE
f.istest = FALSE
ORDER BY
f.ds
HAVING
f.gmv > q.day_avg_gmv你可以看到声明。我试着过滤超过平均水平的gmv。但是,我得到了以下错误:
错误:在“拥有”或“有”附近的语法错误
我知道我可以在WHERE中使用这个条件f.gmv > q.day_avg_gmv来解决问题,但是我想知道为什么它不工作。
发布于 2022-05-24 11:18:07
在SQL中,您只能将having与group by一起使用。
没有group by就不能使用它。
https://stackoverflow.com/questions/72361881
复制相似问题