アンビギュアスグループ

最大値や最小値が得られた値について、その最大値をもつタプル(行)の別の属性(列)を取得したいとした時に、group by句に含まれない属性をselectの属性に含めてしまうというもの。
ほとんどのRDBMSではエラーになるが、MySQLSQLiteはエラーにならないとのこと。エラーにならないんだ・・・。知らなかった。
解決策としては NOT EXISTS句を使って、最大や最小をみつけようとする相関クエリや、group by をした結果に対して、通常のテーブルとJOINするという導出テーブル、外部結合を使ってNOT EXISTSと同様の検索をするといったものが紹介されている。一番最後の解決策が複雑で面倒だが、速度が早いらしい。最近のオプティマイザなら、ほとんどおなじになると思うが・・・。