Tutorial D で、給与の合計を取得したいことに注意してください。 :
SUMMARIZE emp BY { job } ADD ( SUM ( sal ) AS total_sal )
集約は関係演算子ではないため、関係代数の一部を形成しないことに注意してください。
HAVING
について 、それは歴史的な異常ですか。 SQL-92標準以前は、SELECT
を記述できませんでした。 FROM
の式 句(別名派生テーブル)、つまり、すべての作業を1つのSELECT
で実行する必要がありました 表現。 SQLの厳密な評価順序のため、WHERE
の後に集計値は存在しません。 条項が評価されました。つまり、集計値に基づいて制限を適用することはできませんでした。 HAVING
この問題に対処するために導入されました。
しかし、HAVING
でも 、SQLは、派生テーブルが導入されるまで、コッドに関しては関係的に不完全なままでした。 HAVING
でレンダリングされた派生テーブル 冗長ですが、HAVING
を使用しています まだ人気があります(Stackoverflowが通過するものである場合):人々はまだ単一のSELECT
を使用することを好むようです 可能な場合は、評価順序に関するSQLの前述の厳密性(投影はSELECT
で最後に実行されます) 式)HAVING
と比較すると、派生テーブルの使用法が非常に冗長になります 。