SQLクエリで手伝ってください。ここでは、データとテストテーブルを行く:Select Idで列の値はすべて
CREATE TABLE "Cats"
(
"CatId" SERIAL PRIMARY KEY,
"Name" character varying NOT NULL
);
CREATE TABLE "Measures"
(
"MeasureId" SERIAL PRIMARY KEY,
"CatId" integer NOT NULL REFERENCES "Cats",
"Weight" double precision NOT NULL,
"MeasureDay" integer NOT NULL
);
INSERT INTO "Cats" ("Name") VALUES
('A'), ('B'), ('C')
;
INSERT INTO "Measures" ("CatId", "Weight", "MeasureDay") VALUES
(1, 5.0, 1),
(1, 5.3, 2),
(1, 6.1, 5),
(2, 3.2, 1),
(2, 3.5, 2),
(2, 3.8, 3),
(2, 4.0, 4),
(2, 4.0, 5),
(3, 6.6, 1),
(3, 6.9, 2),
(3, 7.0, 3),
(3, 6.9, 4)
;
は、どのように私はすべての5日間の措置を持っているそれらのCATIDを選択します(MeasureDayは(1、2、3、4、5)のすべての値をとりますか)? CatId = 2のCatのみがすべての日数(1,2,3,4,5)の測定値を持つため、このテストデータでは、クエリは2を返します。
私はGROUP BY "CatId"とHAVING句を使用する必要があると仮定しますが、どのような種類のクエリがHAVING内にあるべきですか?
おそらく、3行目は 'MeasureDay in(1,2,3,4,5)'でなければなりません。あなたは答えが完璧に働いています。ありがとうございました! –
@СергейВеселовский、LOL ...ええ。それを逃した – Rahul