查找总成本低于平均 SQL

Posted

技术标签:

【中文标题】查找总成本低于平均 SQL【英文标题】:Finding the total cost less than the average SQL 【发布时间】:2021-06-01 04:08:05 【问题描述】:

我对数据库很陌生。我正在努力学习它。我了解它的基础知识,但是当这些问题出现时,我会傻眼。我在下面附上了逻辑模型、问题和我尝试过的内容。

问题是这样的: 列出总成本低于所有人平均总成本的已完成租船合同 章程。包机的总成本是通过将每小时包机成本乘以 从航段实际出发和实际到达时间获得的实际持续时间。一种 完成包机意味着所有航段都已飞行。 显示包机号码、客户号码、客户姓氏、客户名字、包机总费用。这 总包机费用应四舍五入到小数点后两位数,并以 $ 符号显示 例如1234.56 美元 对于此问题,如果任一客户端名称为空,则应显示“-”。 列表应按总包机费用的降序显示。

我试过了,但是好像没用。

SELECT
chart.charter_nbr,
client_nbr,
client_lname,
client_fname,
chart.charter_cost_per_hour * (leg.cl_ata - leg.cl_atd) as TotalCharterCost

FROM
mh.charter chart
JOIN mh.client cli ON chart.client_nbr = cli.client_nbr
JOIN mh.charter_leg leg ON chart.charter_nbr = leg.charter_nbr

WHERE 
TotalCharterCost < (SELECT
                        AVG(cost)
                    FROM
                        mh.charter chart1
                        JOIN mh.charter_leg leg1 ON chart1.charter_nbr = leg1.charter_nbr
                    WHERE
                        cost = (leg1.cl_ata - leg1.cl_atd) * chart1.charter_cost_per_hour
                    );

任何人都可以指导我或帮助我吗?我还在学习,对数据库还很陌生

【问题讨论】:

你好 Rana,欢迎来到 ***。一个好的起点是这个链接***.com/help/minimal-reproducible-example。在您的情况下,给出答案是一个挑战,因为...您提供了数据模型(作为图片)和 sql 查询,但是...没有创建表的脚本,也没有创建最小数据集的脚本。乍一看,这个语法是不正确的:...TotalCharterCost &lt; (SELECT ... 【参考方案1】:

列别名(“TotalCharterCost”)不能用于 WHERE 子句。 AVG 语句也是不正确的。 先单独运行查询,然后再尝试将它们放在一起:

SELECT
chart.charter_nbr,
client_nbr,
client_lname,
client_fname,
chart.charter_cost_per_hour * (leg.cl_ata - leg.cl_atd) as TotalCharterCost

FROM
mh.charter chart
JOIN mh.client cli ON chart.client_nbr = cli.client_nbr
JOIN mh.charter_leg leg ON chart.charter_nbr = leg.charter_nbr

WHERE 
chart.charter_cost_per_hour * (leg.cl_ata - leg.cl_atd) < (SELECT
                        AVG( chart1.charter_cost_per_hour * (leg1.cl_ata - leg1.cl_atd) )
                    FROM
                        mh.charter chart1
                        JOIN mh.charter_leg leg1 ON chart1.charter_nbr = leg1.charter_nbr                        
                    );

【讨论】:

以上是关于查找总成本低于平均 SQL的主要内容,如果未能解决你的问题,请参考以下文章

PromQL:查找低于平均水平的向量元素

SQL - 查找0到人口平均值之间的百分比

经管-8

二分查找的平均查找长度详解

二分查找的平均查找长度详解

sql查找数据并计算平均值