SQL文で順位を求めるには
順位を求めるSQL文は次のように書きます。
SELECT p.id,p.name,p.point,(SELECT count(*) FROM point_table as p1 WHERE p1.point > p.point) + 1 as rank FROM point_table as p;
元データ point_table
| id | name | point |
|---|---|---|
| 1 | ああ田 ああ郎 | 50 |
| 2 | いい中 いい子 | 80 |
| 3 | うう山 うう夫 | 70 |
| 4 | ええ村 ええ美 | 90 |
| 5 | おお野 おお司 | 80 |
実行結果
| id | name | point | rank |
|---|---|---|---|
| 1 | ああ田 ああ郎 | 50 | 5 |
| 2 | いい中 いい子 | 80 | 2 |
| 3 | うう山 うう夫 | 70 | 4 |
| 4 | ええ村 ええ美 | 90 | 1 |
| 5 | おお野 おお司 | 80 | 2 |
関連記事
- PHPでMySQLなどにPDO接続をすると、could not find driverのエラーが出る場合
- CakePHPでカラムを比較してSELECTする方法
- データベースを定時バックアップする方法(毎日バックアップする処理)
- 複数のデータベースを切り替える方法(別データベースを使用する)
- SQLの概要、区分け
- SQL文で最新日付のみ抽出するには(最大値の抽出)
- SQLの昇順、降順を表すASCやDESCの言葉の由来
- Zend_DBのSELECTメソッドのまとめ
- Zend_DBの基本
スポンサーリンク





