• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:実現するSQL文は?(グルーピング、最小値))

SQL文で各部署の最小ポイントの人を取得する方法

このQ&Aのポイント
  • この質問では、特定のテーブルから各部署で最もポイントの値が小さな人の所属部門、所属課、名前、ポイントを取得する方法について尋ねられています。
  • 具体的には、人事部、営業部、総務部、開発部、経理部、資材部の各部署で最小ポイントの人を取得したいとのことです。
  • 質問者は、この処理を一つのSQL文で実現したいと希望しています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

MySQLのバージョンは? バージョン5以降なら、サブクエリやビューが使えます が、それより前ならば使えません。 バージョン5以降なら、以下でOKだと思います。 SELECT 所属部門,所属課,名前,ポイント FROM 表 WHERE (所属部門,所属課,ポイント) IN(SELECT 所属部門,所属課,MIN(ポイント) FROM 表 GROUP BY 所属部門,所属課)

arvent
質問者

お礼

4.0.16系でもやりようによって、同様の結果を得る事が出来る事がわかりました。 しかし、今回は、2回のSQLに分け、かつHEAP型のテンポラリテーブルを使う事で、速度を稼ぐ事にしました。 5.0系でのサブクエリは非常に便利なようですので、後日、5.0系への移行を検討させて頂きたいと思います。 今回はありがとうございました。

arvent
質問者

補足

すみません、バージョンは4.0.16です>< 今、4.0系でやる為に、http://okwave.jp/kotaeru.php3?q=1462519 を参考にチャレンジしているのですが、結構大変です。。 ver5以降にした方がいいのでしょうか。。 4.0.16から5系へ変更した場合、注意すべき点などはあるのでしょうか。もし、5系で速度が落ちておらず、大きなバグなどもなければ、変更も検討したいと思います。 ご回答ありがとうございました。サブクエリ、という手段について学ぶ事が出来ました。

関連するQ&A