【发布时间】:2022-01-12 13:32:35
【问题描述】:
假设我有一个名为recent_grads 的表,它有major、sharewomen 列,其中major 是一个字符串,例如“engineering”、“medical”等,sharewomen 是一个浮点数,例如“1230.23”等。
我想选择并过滤大于sharewomen列平均值的行。
我想知道为什么这个查询不起作用。
SELECT *
FROM recent_grads
WHERE ShareWomen > AVG(ShareWomen);
它目前给我这个错误。
(sqlite3.OperationalError) 滥用聚合函数 AVG() [SQL: SELECT * FROM recent_grads WHERE ShareWomen > AVG(ShareWomen);] (此错误的背景:http://sqlalche.me/e/e3q8)
【问题讨论】:
-
如果没有子请求,您将无法实现您想要的。并且 where 子句中不允许使用聚合函数。
-
请仅标记您正在使用的单个 RDBMS,而不是4 个完全不同的RDBMS。请更正您的标签。