単一の行のみを選択しながら、合計行数を取得します

ZeroByter

関連/類似の質問:MySQL-選択時行番号を取得します部分的な結果のみを選択しますが行の総数を取得します

私は現在このテーブルを持っています:

+----+--------------------+---------------+--------+
| id | accountId          | competitionId | rating |
+----+--------------------+---------------+--------+
|  1 | theidoftheaccount1 |            1  | 100    |
|  2 | theidoftheaccount2 |            3  | 90     |
|  3 | theidoftheaccount3 |            1  | 80     |
|  4 | theidoftheaccount4 |            1  | 50     |
+----+--------------------+---------------+--------+

で行を取得したいaccountId='theidoftheaccount3'ので、通常のSQLステートメントを呼び出しますSELECT * FROM competitors WHERE competitionId='someotherid1' AND accountId='theidoftheaccount3 ' ORDER BY rating DESC。すべて問題ありません。

問題:取得した行の行番号を知りたいのですが、を持っている他のすべての行からのみcompetitionId='someotherid1'です。この行番号は、同じ競技会の他のすべての競技者の中での競技者の「ランク」になります。

だから基本的に一日の終わりに私は戻ってきます:

+----+--------------------+---------------+--------+-----------+
| id | accountId          | competitionId | rating | rowNumber |
+----+--------------------+---------------+--------+-----------+
|  3 | theidoftheaccount3 |            1  | 80     | 2         |
+----+--------------------+---------------+--------+-----------+

これはどのように行うことができますか?

ゴードン・リノフ

1つの方法はrow_number()、サブクエリで使用することです。

select c.*
from (select c.*,
             rank() over (partition by competitionid order by rating desc) as ranking
      from competitors c
      where competitionId = 'someotherid1'
     ) c
where accountId = 'theidoftheaccount3';

編集:

ウィンドウ関数のない代替手段は次のとおりです。

select count(*) + 1 as ranking
from competitors c
where c.competitionId = 'someotherid1' and
      c.rating > (select c2.rating
                  from competitors c2
                  where c2.competitionid = c.competitionId and
                        c2.accountId = 'theidoftheaccount3' 
                 );

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

PostgreSQL:単一の列の合計削減がしきい値を超えるまで行を選択します

分類Dev

選択した行のみを合計します

分類Dev

別の列を合計しながら最小日付の行を選択する

分類Dev

合計経過値が以下の行を選択します

分類Dev

mysqlの列を上から下の行まで合計し、値が含まれる行を選択します

分類Dev

IOS:didSelectRowAtIndexPathは、単一のセルを選択しながら複数のセルを選択します

分類Dev

単一の参照からmultifileUploadを選択し、選択します

分類Dev

選択した行から値を取得し、その平均を計算します

分類Dev

DataTables-選択したすべての行から単一の列の値を取得します

分類Dev

mysqlは、選択した行数の各列の合計を生成します

分類Dev

リストから選択した行のみを合計する方法

分類Dev

mysqlの2つの異なるテーブルから合計を選択しますが、異なる答えを取得します

分類Dev

MySQLのさまざまなクエリから選択された値の合計を取得します-PHP

分類Dev

列の合計がRの固定値に等しい行を選択します

分類Dev

MySQLは、列の合計が等しい値の行を選択します

分類Dev

b:dataTableは単一の行を選択します(そして単一の行のみ)

分類Dev

SQL-行の合計が特定の値になるまで行を選択します

分類Dev

OracleSQL-単一行の列の組み合わせから複数の行を取得します

分類Dev

翻訳単位のコードの合計行数を取得します

分類Dev

選択の単一の形状を取得します

分類Dev

Postgresql:さまざまな条件の合計を選択します

分類Dev

MySQLの条件が異なる2つの合計を選択します

分類Dev

SQL Server: 合計が値に一致する最新の行を選択します

分類Dev

Linqは複数の結合から選択し、テーブルが一致を返さない場合でもすべての行を返します

分類Dev

行から複数の値を選択し、それを単一の列の値として結合する方法

分類Dev

QTableViewで単一の行の選択を解除します

分類Dev

1つの列のみが異なる場合は[個別の行]を選択しますLinq

分類Dev

R:選択した入力から合計を取得します

分類Dev

複数の行を合計しますが、結果の行数は保持します

Related 関連記事

  1. 1

    PostgreSQL:単一の列の合計削減がしきい値を超えるまで行を選択します

  2. 2

    選択した行のみを合計します

  3. 3

    別の列を合計しながら最小日付の行を選択する

  4. 4

    合計経過値が以下の行を選択します

  5. 5

    mysqlの列を上から下の行まで合計し、値が含まれる行を選択します

  6. 6

    IOS:didSelectRowAtIndexPathは、単一のセルを選択しながら複数のセルを選択します

  7. 7

    単一の参照からmultifileUploadを選択し、選択します

  8. 8

    選択した行から値を取得し、その平均を計算します

  9. 9

    DataTables-選択したすべての行から単一の列の値を取得します

  10. 10

    mysqlは、選択した行数の各列の合計を生成します

  11. 11

    リストから選択した行のみを合計する方法

  12. 12

    mysqlの2つの異なるテーブルから合計を選択しますが、異なる答えを取得します

  13. 13

    MySQLのさまざまなクエリから選択された値の合計を取得します-PHP

  14. 14

    列の合計がRの固定値に等しい行を選択します

  15. 15

    MySQLは、列の合計が等しい値の行を選択します

  16. 16

    b:dataTableは単一の行を選択します(そして単一の行のみ)

  17. 17

    SQL-行の合計が特定の値になるまで行を選択します

  18. 18

    OracleSQL-単一行の列の組み合わせから複数の行を取得します

  19. 19

    翻訳単位のコードの合計行数を取得します

  20. 20

    選択の単一の形状を取得します

  21. 21

    Postgresql:さまざまな条件の合計を選択します

  22. 22

    MySQLの条件が異なる2つの合計を選択します

  23. 23

    SQL Server: 合計が値に一致する最新の行を選択します

  24. 24

    Linqは複数の結合から選択し、テーブルが一致を返さない場合でもすべての行を返します

  25. 25

    行から複数の値を選択し、それを単一の列の値として結合する方法

  26. 26

    QTableViewで単一の行の選択を解除します

  27. 27

    1つの列のみが異なる場合は[個別の行]を選択しますLinq

  28. 28

    R:選択した入力から合計を取得します

  29. 29

    複数の行を合計しますが、結果の行数は保持します

ホットタグ

アーカイブ