【发布时间】:2018-11-18 01:31:15
【问题描述】:
有5个关系:
Event (etype, description) primary key - etype
City (cname, country, population) primary key - cname
Disaster (cname, dyear, etype, casualties) primary keys - cname, dyear
Prediction (cname, etype, casualties) primary keys - cname, etype
Measures (etype, provider, mcost, percent) primary keys - etype, provider
etype - 灾难的类型。
提供者 - 警察、消防部门...
mcost - 这些提供商的成本。
percent - 避免人员伤亡的供应商百分比。
我需要编写一个查询,找出 2 个成功的提供者来预测城市中的灾难。两者的成本不得高于 1,000,000。
2 成功的提供者定义为最大可能的总和。
到目前为止我有这个:
select
from prediction, measures as m1, measures as m2
where m1.provider < m2.provider AND (m1.mcost + m2.mcost <= 1000000)
AND m1.percent + m2.percent >= all (select
我不知道这个部分查询是否正确以及下一步该怎么做。
【问题讨论】:
-
“不知道这个部分查询对不对”---那么运行看看?
-
运行部分查询?为什么?
-
请学习使用显式 ANSI 标准连接语法,例如“内连接” “左外连接”。拒绝在 from 子句中在表名之间放置逗号的选项。
-
为什么有人会运行部分查询? 查看该位是否有效。 如果没有,请修复它。如果是,请继续下一位。
-
我没有扔****。您问为什么有人会运行部分查询。如果你不愿意接受建议,那很好,但没有必要到处侮辱。运行部分代码是一种有效的 SQL 方法。
标签: sql postgresql