• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:3つのテーブルを使ったselecct文でのorder by とgroup by の使い方について)

3つのテーブルを使ったselecct文でのorder by とgroup by の使い方について

このQ&Aのポイント
  • 3つのテーブルを結合してselect文でデータを取得する際のorder byとgroup byの使い方について質問です。
  • 特に、u_dateというカラムを使ってデータをソートしたいのですが、order byだけではエラーが出てしまうため、group byを使って結果を整理したいと思っています。
  • しかし、idとp_numが同じものでもu_dateが異なる場合があるため、group byを使うと結果が重複して表示されてしまいます。idとp_numを区別せずに1つのレコードとして扱いたいのですが、どうすればよいでしょうか?

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

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.1

「idとp_numが同じで、日付が違うものがある」ならば、グループ化された行の中に複数の日付の値が含まれるので、そのままではソートの条件には出来ません。 日付の項目に集約関数を使う必要が有ります。 例えば、下記の様な ORDER BY句が考えられます。 ■ (グループ中の)最新のu_dateでソート ORDER BY MAX(u_date) ■ (グループ中の)最古のu_dateでソート ORDER BY MIN(u_date) http://www.postgresql.jp/document/pg746doc/html/functions-aggregate.html http://www.postgresql.jp/document/pg746doc/html/queries-order.html

aiurai54
質問者

お礼

返信が遅くなって申し訳ありません。 ややこしいSQLに回答をいただきありがとうございます。 やってはみたのですが、下記のようにしても日付順にソートされませんでした。 order by w.id desc,p.p_num,MAX(u_date)

aiurai54
質問者

補足

すみません!!私の勘違いでした。。。 うまくソートできました。 ありがとうございます。

関連するQ&A