【问题标题】:In SQL, how do I get the awards total for each player在 SQL 中,我如何获得每个玩家的奖励总数
【发布时间】:2012-11-05 18:41:06
【问题描述】:

我有两张桌子,一张叫 Players,一张叫 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 代表罚球摘录)。

【问题讨论】:

  • 查看MySql中的GROUP BY操作,它应该可以帮助你做你需要的。

标签: php mysql sql


【解决方案1】:

你是对的。使用 Group By 计数就可以了

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

【讨论】:

    猜你喜欢
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 2022-07-14
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 2013-10-05
    • 1970-01-01
    相关资源
    最近更新 更多