• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:並び替えで教えて下さい。)

並び替えで悩む!必見の方法とは?

このQ&Aのポイント
  • 並べ替えについて悩んでいる場合、ORDER BY句を使用することで解決できます。
  • 例えば、A、B、Cというフィールドがあり、それぞれのデータが入っている場合、ORDER BY AとするとAの値に基づいて並び替えられます。
  • また、ORDER BY句を複数のフィールドに指定することもでき、指定した順番に並び替えられます。

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

  • ベストアンサー
  • yoko3333
  • ベストアンサー率35% (47/134)
回答No.3

できた・・・かな? ちょっと不安(^_^;) SELECT Tbl_A.名前, Tbl_A.日付, Tbl_A.順位, Tbl_C.順位 As 順位1 FROM TEST Tbl_A, (SELECT Tbl_B.* FROM TEST Tbl_B WHERE Tbl_B.日付=(SELECT Min(Tbl_D.日付) FROM TEST Tbl_D)) Tbl_C WHERE Tbl_A.名前=Tbl_C.名前 ORDER BY Tbl_C.順位, Tbl_A.名前, Tbl_A.日付

wellkarm
質問者

お礼

出来ました!! すばらしいです! 最高です! 本当にありがとうございました。

その他の回答 (6)

回答No.7

ごめんなさい。ちょっと勘違いしてましたm(_ _)m

回答No.6

名前  日付   順位 山田  20050301 1 山田  20050302 3 田中  20050301 2 田中  20050302 1 佐藤  20050301 3 佐藤  20050302 4 鈴木  20050301 4 鈴木  20050302 2 上のようなデータなら WHERE で取得したい日付を指定して ORDER BY で順位を並び替えじゃダメかな?

回答No.5

オラクルのバージョンによっては、分析関数の利用によって、結合を行わずに問い合わせできます。 環境にもよりますが、効率が良い可能性があるというところしか違いませんが.. select 名前, 日付, 順位 from ( select 名前, 日付, 順位, lag(キー, 1, キー) over(partition by 名前 order by キー) キー from ( select 名前, 日付, 順位, decode(日付, min(日付) over(order by 日付), 順位) キー from xxx ) ) order by キー, 名前;

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.4

select A, B, C from ocyan.テストm group by A order by B,C ; ソートオーダは複数項目指定できるのでこれで出来ませんか?

  • yoko3333
  • ベストアンサー率35% (47/134)
回答No.2

あー、なるほど! なんとなくわかりました。 ちなみに、ビューを使ったりとかしてもOKですか? 1回のSELECT文でもできるのでしょうけど、かなり複雑になりそうなので、 ビューが使えればそちらの方が良いと思うのです。 いかがでしょう?

wellkarm
質問者

補足

すみません。原則的にViewは使わないことになっているので、SELECT文でお願い出来ますでしょうか?

  • yoko3333
  • ベストアンサー率35% (47/134)
回答No.1

うーん・・・ > つまりORDER BY B、Cの結果の1つ目のレコードの > AでGROPE BYするような感じです。 ここの意味がいまいち分からないのですが。 (私の理解力が足りないのか・・・。) > ccc 1 4 > ccc 2 5 > bbb 1 5 > bbb 2 6 > aaa 1 6 > aaa 2 4 この結果だけ見たら、「order by A desc, B」ですけど、そうじゃないんですよね? 申し訳ありませんが、別の例も出してみていただけませんでしょうか?

wellkarm
質問者

補足

すみません。説明不足です。 でも表現しにくいので、下記の例を挙げます。 2005年3月1日時点での順位が高い人から並べたい。                名前  日付   順位 鈴木  20050301 4 鈴木  20050302 2 佐藤  20050301 3 佐藤  20050302 4 田中  20050301 2 田中  20050302 1 山田  20050301 1 山田  20050302 3     ↓     名前  日付   順位 山田  20050301 1 山田  20050302 3 田中  20050301 2 田中  20050302 1 佐藤  20050301 3 佐藤  20050302 4 鈴木  20050301 4 鈴木  20050302 2 ORDER BY それぞれ名前・日付・順位としても上記の結果にはなりませんよね。 (日付+順位)でソートとして名前順に表示みたいな。。。 なんとも説明がヘタで申し訳ございません。。。