hoge INNER JOIN foo ON hoge.id = foo.hoge_id WHERE hoge.name LIKE ‘sone%’ GROUP BY hoge.category_id ORDER BY pk LIMIT 10 1. FROM句で検索対象を指 定する 2. ON句とJOIN句で条件と 対象を指定する 3. WHERE句で絞り込む … と続いて行く https://www.postgresql.jp/document/current/html/sql-select.html
hoge INNER JOIN foo ON hoge.id = foo.hoge_id WHERE hoge.name LIKE ‘sone%’ GROUP BY hoge.category_id ORDER BY pk LIMIT 10 例えばWHERE句が実行され てからGROUP BY句が実行さ れるのでWHERE句で直接 SUMはできない。 ORDER BY句はSELECT句の 後に実行されるのでSELECT 句でAS句で指定されたラベル を利用できる https://www.postgresql.jp/document/current/html/sql-select.html SELECT句は10番目。 GROUP BY句やWHERE句では SELECT句の結果を利用できない ORDER BY句ではSELECT句の後なので SELECT句のラベルを利用できる
DATE NOT NULL, 理由 CHAR(40) NOT NULL, 罰点 INTEGER NOT NULL CHECK (罰点 BETWEEN 0 AND 4), PRIMARY KEY(社員id, 欠勤日) ); このTableに保存された欠勤 内容に対して、連日欠勤した データを検索したい。 本の内容から調整しています
カレンダー AS c ON c.日付 = t1.欠勤日 AND c.タイプ = ‘平日’ EXISTS ( SELECT * FROM 欠勤 AS t2 WHERE t1.欠勤id = t2.欠勤id AND t1.欠勤日 = (t2.欠勤日 + INTERVAL ‘1’ DAY) ) 実際の連続した欠勤では金 曜日と月曜日のように週末を 挟んだ連続した欠勤もある。 そのような場合に有効なのが カレンダーテーブルを作って比 較する
( SELECT * FROM テスト結果 AS t2 WHERE t1.テスト名 = t2.テスト名 AND t1.完了日 IS NULL ) 完了したテスト = 完了してい ないテストステップが一つも存 在していない。 逆転の発想で条件を指定す ることで検索することができ る。 完了したテスト結果を探す