いつもお世話になっております。
sqlで使用される英語でhaving句がありますがこれはなぜhavingを用いるのでしょうか。
where句がレコードに対する条件でhaving句がグループに対する条件と言うのは分かっているんですが英語のhavingを用いるのが釈然としません。
どうでもいいと言えばどうでもいいのかもしれませんが、なぜhavingという単語を使用するのかご存知の方がいらっしゃればご教授願いたいです。
回答3件
あなたの回答
tips
プレビュー
MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。
SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。
Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。
PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。
SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。
MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。
SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。
Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。
PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。
SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。
0グッド
0クリップ
投稿2015/11/15 11:55
いつもお世話になっております。
sqlで使用される英語でhaving句がありますがこれはなぜhavingを用いるのでしょうか。
where句がレコードに対する条件でhaving句がグループに対する条件と言うのは分かっているんですが英語のhavingを用いるのが釈然としません。
どうでもいいと言えばどうでもいいのかもしれませんが、なぜhavingという単語を使用するのかご存知の方がいらっしゃればご教授願いたいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
selectが選択する、という意味だから、choice, read, get でも良いようなもので、
having を使うというのはそういう文法、つまり、掟や決まりだからです。
nahanihanaさんがパフォーマンスや使いやすさで現在のSQLの文法を越えるものを作ることができれば、DBのアクセスはそちらに変わるかもしれません。
投稿2015/11/15 12:07
総合スコア16415
0
色々考えてみました。
Having (SQL)
https://en.wikipedia.org/wiki/Having_(SQL)
A HAVING clause in SQL specifies that an SQL SELECT statement should only return rows where aggregate values meet the specified conditions. It was added to the SQL language because the WHERE keyword could not be used with aggregate functions.[1]
SQLでHAVING句は、集計値が指定された条件を満たしている場合は、SQLのSELECT文は、行のみを返すように指定します。 WHEREキーワードは集約関数で使用することができませんでしたので、それは、SQL言語に追加されました。
HAVING を GROUP BY(が仮に過去分詞として) にかけて考えると
「GROUP BYをした後の条件」と読み取れるので、HAVINGなのかもしれないですね。
実際、HAVINGはGROUP BYの後の条件なので…。
投稿2015/11/16 01:54
総合スコア856
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
まぁ、強いて言うなら、
「"グループ化した仮想テーブル"を、保って(having)さらに」という様な意味合いでしょうね。
投稿2015/11/15 15:39
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/16 09:49
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/16 09:53