sql - 如何创建此查询

标签 sql mysql aggregate-functions

如果我需要在选择行中包含两个聚合函数并且每个函数我需要不同的分组条件和条件,如何创建查询 在我的示例中,我需要返回 playerName,如果 table 上游戏 result= first 中的结果可以检查有多少玩家获胜,以及他玩了多少次

但不知道如何处理两个聚合函数。

只是我想加入这两个查询的结果

1.

select playeName,count(*)
from  player,game
where player.playerId=game.playerId and result="first"
group by game.playerId

2.

select count(*)
from game, player
where game.playerId=player.playerId
group by game.playerId

桌面游戏的属性集是 playerId , 结果 桌面播放器的属性集是 playerName,playerId

有什么想法吗???

最佳答案

使用:

  SELECT p.playername,
         SUM(CASE WHEN g.result = 'first' THEN 1 ELSE 0 END),
         COUNT(*)
    FROM PLAYER p
    JOIN GAME g ON g.playerid = p.playerid
GROUP BY p.playername

关于sql - 如何创建此查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4473401/

相关文章:

mysql - 使用 ORDER BY 时如何减少 sql 查询时间

mysql - 如何从MYSQL中的一列中获取不同值的计数

mysql - 当它引用的字段自动递增时,我如何有效地模仿外键约束?

sql - 在 Postgresql 中使用 distinct 然后聚合函数?

sql - 在 Postgres 中使用动态基础进行累积添加

sql - 复式应计会计概念

mysql - 在 JOIN 中使用具有 'AS' 的字段的指定名称

c# - 使用 nHibernate QueryOver 加入一个子集

javascript - SQL SELECT 和 UPDATE 语法

mysql - 从 postgres 上的多个表聚合不起作用