gpt4 book ai didi

Mysql 数据库 - 平均值

转载 作者:行者123 更新时间:2023-11-29 12:40:28 28 4
gpt4 key购买 nike

有个问题:

使用适当的列名称,显示 obs 类型“CONT”的允许 ID 和平均 obs 值,其中 CONT 的平均 obs 值 >= 40。
假设承认是表1,观察是表2,但具有相同的主键Admit_id。我试图得到 obs 值平均值大于 40 的结果,但是但是我得到了这个错误:'where 子句中的未知列'平均'。这里有什么解决办法吗?

Select
ADMIT.Admit_id,
(SELECT AVG(Obs_value) FROM OBSERVE) AS Average
from
ADMIT,OBSERVE
Where
ADMIT.Admit_id=OBSERVE.Admit_id
AND
OBSERVE.Obs_type = 'CONT'
AND
Average >=40;

最佳答案

您应该尝试连接两个表
并且您不能在WHERE中引用别名..它必须是HAVING。所以像这样的事情..

SELECT a.Admit_id, AVG(o.Obs_value) AS Average
FROM ADMIT a
JOIN OBSERVE o ON o.admit_id = a.admit_id
WHERE o.Obs_type = "CONT"
GROUP BY a.Admit_id
HAVING Average >=40;

这样想...
SELECT 正在一家餐厅下订单....
FROMJOIN 表示您想从哪个菜单订购......
WHERE 是您想要对订单进行的任何自定义(也称为无蘑菇)....
GROUP BY 以及之后的任何内容都是在订单完成并在您的餐 table 上之后...
ORDER BY 是说您首先想要什么菜(也就是我想要主菜,然后是甜点,然后是开胃菜)。
HAVING 可用于挑出意外留在盘子上的蘑菇......
等等..
我知道这是一个奇怪的类比,但它是理解它如何工作的好方法..
在使用选择创建该表之前,无法引用表的别名,您也可以将其设为子选择,并使用 WHERE 执行相同的操作,如下所示

SELECT *
FROM
( ... your_inner_select -- without the HAVING
)t -- every table must have an alias
WHERE t.Average >=40

关于Mysql 数据库 - 平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26194842/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com