我正在尝试查询
“生产者的名字是什么? 至少有2个区域属性 少于10“
我做了以下似乎有效的查询:
select Producers.name
from Producers
where (
select count(Properties.prop_id)
from Properties
where Properties.area < 10 and Properties.owner = Properties.nif
) >= 2;
但是,我的讲师对此并不满意。他甚至认为(至少给我的印象)这种查询在oracle中无效。
那么如何进行此查询呢? (目前我无法与他交谈)。
以下是表格:
制作人(nif(pk),姓名,......)
财产(地区,所有者(fk to 生产者),地区,......)
答案 0 :(得分:3)
having子句通常用于过滤聚合数据(如计数,总和,最大等)。
select
producers.name,
count(*)
from
producers,
property
where
producers.nif = property.owner and
property.area < 10
group by
producers.name
having
count(*) >= 2
答案 1 :(得分:1)
select P.name
from Producers p, Properties pr
where p.nif = pr.Owner
AND Properties.area < 10
GROUP BY Producers.name
having Count(*) >= 2