我有一个问题,我必须在表中找到唯一的元组,而在另一个表中从未见过它们。然后我必须计算这些元组并显示出现超过 10 次的元组。也就是说,有些工作不需要工作人员,我要找到从未需要工作人员并且已经运行超过10次的工作。
create table JobStaff (
Job integer references Job(id),
staff integer references Staff(id),
role integer references JobRole(id),
primary key (job,staff,role)
);
create table Job (
id integer,
branch integer not null references Branches(id),
term integer not null references Terms(id),
primary key (id)
);
基本上我的代码存在于:
CREATE OR REPLACE VIEW example AS
SELECT * FROM Job
WHERE id NOT IN (SELECT DISTINCT jobid FROM JobStaff);
create or replace view exampleTwo as
select branch, count(*) as ct from example group by 1;
create or replace view sixThree as
select branch, ct from exampleTwo where ct > 30;
这似乎返回两个额外的行,然后是预期的结果。我问了我的讲师,他说这是因为我计算了有时
编辑:这意味着,对于所有可用的工作条款,没有分配给它的工作人员
EDIT2:预期输出和我得到的:
我得到了什么:
branch | cou
---------+-----
7973 | 34
7978 | 31
8386 | 33
8387 | 32
8446 | 32
8447 | 32
8448 | 31
61397 | 31
62438 | 32
63689 | 31
预期的:
branch | cou
---------+-----
7973 | 34
8387 | 32
8446 | 32
8447 | 32
8448 | 31
61397 | 31
62438 | 32
63689 | 31