で「グループ機能の無効な使用」には、私のデータベースは次のようになります。私は2000年より後に映画を持っており、より多くを持っているディレクターを取得しようとする上記のクエリでははMySQLを使用したMySQL
+-----------------------+--------------------+------+--------+
| moviesInfo | | | |
+-----------------------+--------------------+------+--------+
| title | director | year | oscars |
+-----------------------+--------------------+------+--------+
| BoBoiBoy: The Movie | Nizam Razak | 2016 | 0 |
| Inception | Christopher Nolan | 2010 | 4 |
| Interstellar | Christopher Nolan | 2014 | 1 |
| Munna Bhai M.B.B.S. | Rajkumar Hirani | 2003 | 0 |
| My Dear Brother | Ertem Egilmez | 1973 | 0 |
| Rocky | John G. Avildsen | 1976 | 3 |
| The Nights of Cabiria | Federico Fellini | 1957 | 1 |
| The Sixth Sense | M. Night Shyamalan | 1999 | 6 |
| Tokyo Story | Yasujirô Ozu | 1953 | 0 |
| Yojimbo | Akira Kurosawa | 1961 | 1 |
+-----------------------+--------------------+------+--------+
select director from moviesInfo
where MAX(year) > 2000 and SUM(oscars) > 2
group by director;
2オスカーよりも、私はエラーが発生します。
Invalid use of group function
まだ私はこれを完全に理解していません。
期待出力はGROUP BY
aggregate functionsがWHERE
句で使用することはできません
+-------------------+
| director |
+-------------------+
| Christopher Nolan |
+-------------------+
ありがとう、おそらくHAVING節が何をしているのか説明できますか? – Ludisposed
@Ludisposed 'HAVING'は、すべてのレコードの代わりに形成されたグループ上で動作する点を除いて、' WHERE'と似ています。彼のHAVING句は、ディレクターのレコードグループが2000年を過ぎて、オスカーの合計が2以上であるところを指しています。 –
素晴らしいexplenation、私は今2回upvoteできないことが悲しいです。 – Ludisposed