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の基本
スポンサーリンク