- ベストアンサー
並び替えで悩む!必見の方法とは?
- 並べ替えについて悩んでいる場合、ORDER BY句を使用することで解決できます。
- 例えば、A、B、Cというフィールドがあり、それぞれのデータが入っている場合、ORDER BY AとするとAの値に基づいて並び替えられます。
- また、ORDER BY句を複数のフィールドに指定することもでき、指定した順番に並び替えられます。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
できた・・・かな? ちょっと不安(^_^;) 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.日付
その他の回答 (6)
- _satoshi_
- ベストアンサー率44% (4/9)
ごめんなさい。ちょっと勘違いしてましたm(_ _)m
- _satoshi_
- ベストアンサー率44% (4/9)
名前 日付 順位 山田 20050301 1 山田 20050302 3 田中 20050301 2 田中 20050302 1 佐藤 20050301 3 佐藤 20050302 4 鈴木 20050301 4 鈴木 20050302 2 上のようなデータなら WHERE で取得したい日付を指定して ORDER BY で順位を並び替えじゃダメかな?
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
オラクルのバージョンによっては、分析関数の利用によって、結合を行わずに問い合わせできます。 環境にもよりますが、効率が良い可能性があるというところしか違いませんが.. 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)
select A, B, C from ocyan.テストm group by A order by B,C ; ソートオーダは複数項目指定できるのでこれで出来ませんか?
- yoko3333
- ベストアンサー率35% (47/134)
あー、なるほど! なんとなくわかりました。 ちなみに、ビューを使ったりとかしてもOKですか? 1回のSELECT文でもできるのでしょうけど、かなり複雑になりそうなので、 ビューが使えればそちらの方が良いと思うのです。 いかがでしょう?
補足
すみません。原則的にViewは使わないことになっているので、SELECT文でお願い出来ますでしょうか?
- yoko3333
- ベストアンサー率35% (47/134)
うーん・・・ > つまり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」ですけど、そうじゃないんですよね? 申し訳ありませんが、別の例も出してみていただけませんでしょうか?
補足
すみません。説明不足です。 でも表現しにくいので、下記の例を挙げます。 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 それぞれ名前・日付・順位としても上記の結果にはなりませんよね。 (日付+順位)でソートとして名前順に表示みたいな。。。 なんとも説明がヘタで申し訳ございません。。。
お礼
出来ました!! すばらしいです! 最高です! 本当にありがとうございました。