• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL文の書き方について)

SQL文の書き方について

このQ&Aのポイント
  • SQL文の書き方について教えてください。テーブルから各人ごとの最大値を抽出する方法を知りたいです。
  • 上記のテーブルから、各人ごとの最大値と各人のデータを抽出するSQL文を教えてください。
  • SMPL_TBL1とSMPL_TBL2という2つのテーブルから、各人ごとのPOINTのMAX値と各人のデータを抽出する方法を教えてください。

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

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

基本的に、単純に結合して、集計するだけでOKなハズです。 #1、#2どちらも同じ結果となるSQLだと思います。(というか、違いが無い ^^;) 効率的には、 select a.id,b.name,a.point,b.busho from (select id,max(point) as point from smpl_tbl2 group by id) as a inner join smpl_tbl1 as b on (b.id=a.id) とした方が良いような気がします。 (ホントのところは、索引の持ち方次第なので、不明ですが・・)

iton
質問者

お礼

回答ありがとうございます。 今回、サンプルのデータでは表示項目が2、3項目しかありませんが、実際には20項目近くあり、できれば 「SELECT * ~」で抽出したいと思っていました。 ご教示頂いた方法でしたら、SELECT *~でも抽出できそうです! 参考にさせていただきます。ありがとうございました。

その他の回答 (2)

回答No.2

SELECT a.ID,a.NAME,Max(b.POINT) AS POINT,a.BUSHO FROM SMPL_TBL1 as a INNER JOIN SMPL_TBL2 as b ON a.ID = b.ID GROUP BY a.ID,a.NAME,a.BUSHO ORDER BY a.ID これで、どうですか?

iton
質問者

お礼

回答ありがとうございました。 今回、サンプルのデータでは表示項目が2、3項目しかありませんが、実際には20項目近くあり、できれば 「SELECT * ~」で抽出したいと思っています。 No1の方と同じで、ご教示頂いた方法ですと、全ての項目を記述しなければならないということですよね。 どのようにすればうまくいくか、教えていただいたことを参考にしてみようと思います。 ありがとうございました。

  • galoon
  • ベストアンサー率28% (38/133)
回答No.1

素直にやれば SELECT SMPL_TBL1.ID, SMPL_TBL1.NAME, MAX(SMPL_TBL2.POINT) POINT, SMPL_TBL1.BUSHO FROM SMPL_TBL1 INNER JOIN SMPL_TBL2 ON SMPL_TBL1.ID = SMPL_TBL2.ID GROUP BY SMPL_TBL1.ID, SMPL_TBL1.NAME, SMPL_TBL1.BUSHO ORDER BY SMPL_TBL1.ID といったところでしょうか。

iton
質問者

お礼

回答ありがとうございました。 今回、サンプルのデータでは表示項目が2、3項目しかありませんが、実際には20項目近くあり、できれば 「SELECT * ~」で抽出したいと思っています。 ご教示頂いた方法ですと、全ての項目を記述しなければならないということでしょうか。 どのようにすればうまくいくか、教えていただいたことを参考にしてみようと思います。 ありがとうございました。

関連するQ&A