0

2 つのテーブルがあり、1 つは Players と呼ばれ、もう 1 つは Awards と呼ばれます。エンドユーザーはプレーヤーに「賞」を与え、プレーヤーは同じ賞を複数回受け取ることができます。

 Awards Table
----+------------------------------------------------------------------------+
| ID | name                             |  player_id                         |
+----+-----------------------------------------------------------------------+
|  1 | Free-throw Excerpt               |  1                                 |
|  2 | Free-throw Excerpt               |  6                                 |
|  3 | Top Earner                       |  1                                 |
|  4 | Top Player                       |  5                                 |
|  5 | Free-throw Excerpt               |  1                                 |
|  6 | Free-throw Excerpt               |  1                                 |
|  7 | Top Earner                       |  1                                 |
|  8 | Top Player                       |  1                                 |
       ...
+----+-----------------------------------------------------------------------


 `Players Table`
----+------------------------------------------------------------------------+
| ID | name                                                                  |
+----+-----------------------------------------------------------------------+
|  1 | Player A                                                              |
|  2 | Player B                                                              |
|  3 | Player C                                                              |
|  4 | Player D 
       ...                                                                   |  
+----+-----------------------------------------------------------------------

私のアプリでは、各プレーヤーにページがあり、そのページに、プレーヤーが獲得したすべての賞を表示したいと考えています。たとえば、プレーヤー B のページの場合:

プレーヤー A の統計:

  • フリースロー抜粋:3票
  • トップ獲得者: 2 票
  • トッププレイヤー: 1 票

アワード テーブルにクエリを実行して、プレーヤー A に与えられたすべてのアワードを取得できますが、ここで立ち往生していて、どこに行けばよいかわかりません。その後、受け取った各賞の数を取得するために COUNT(*) を実行する必要がありますか? (トップ選手1名、フリースロー抜粋3名)。

4

1 に答える 1

4

あなたが正しいです。Group Byで数えます

Select a.Name, Count(*) AS Total From Awards a
Where a.PlayerID = 1
Group By a.Name
Order By Count(*) DESC
于 2012-11-05T18:44:53.603 に答える