テーブル内で一意のタプルを見つけなければならないという質問がありますが、それらは別のテーブル内では見られませんでした。次に、それらのタプルを数えて、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;
これは、予想される結果よりも 2 つの余分な行を返すようです。講師に聞いたところ、時々コースを数えているからだと彼は言いました。
編集:これは、仕事が利用可能だったすべての期間について、それに割り当てられた仕事スタッフがいなかったことを意味します
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