繁体   English   中英

在SQL中,我如何获得每个玩家的奖励总额

[英]In SQL, how do I get the awards total for each player

我有两个桌子,一个叫玩家,一个叫奖励。 最终用户向玩家授予“奖励”,玩家可以多次获得相同的奖励。

 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个)。

你是对的。 用Group By计数会做到这一点

Select a.Name, Count(*) AS Total From Awards a
Where a.PlayerID = 1
Group By a.Name
Order By Count(*) DESC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM