PHPにおいてDBに値が100、90、50、-10という値があり、それを順位ごとにソートして

1位 100
2位 90
3位 50
4位 -10
という風に出力するにはどうしたらいいでしょうか?
後、新規に値が-20と来たらそれを
5位にしたり、値が110とかきたら1位に
したりするにはどうしたらいいでしょうか?
DBはPostgreSQLです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/01/24 12:10:25
  • 終了:--

回答(3件)

id:ito-yu No.1

ito-yu回答回数323ベストアンサー獲得回数142006/01/24 12:23:33

ポイント10pt

http://www.atmarkit.co.jp/fnetwork/rensai/sql02/sql1.html

SELECT文で並べ替えを行うには?

クエリ結果を数値順に並べるには、ORDER BY句を使います


SELECT * FROM table ORDER BY hoge;


降順であれば「ORDER BY hoge DESC」とします。

ただ、並べ替える項目がINTEGERなどの数値型でないと、数値順に並ばないと思います。

もし文字列型に格納しているようなら、数値型にキャストすればいいと思います。

id:ohguma No.2

ohguma回答回数26ベストアンサー獲得回数02006/01/24 12:22:53

ポイント40pt

http://www.postgresql.jp/document/

PostgreSQL日本語ドキュメント

同じ値を考慮しなければこんな形で順位がとれます。


drop table hoge;

create table hoge (

id int2,

value int2

);

insert into hoge VALUES( 10,100);

insert into hoge VALUES( 20,90);

insert into hoge VALUES( 30,50);

insert into hoge VALUES( 40,-10);

select (select count(*) from hoge h2 where h2.value>=h1.value)||’位’, value from hoge h1;

id:hopefully

ありがとうございます。

2006/01/24 13:36:45

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 hive7134 167 154 16 2006-01-24 12:34:50

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません