Mysql 尝试获取简单db表的计数统计信息
我想从一个简单的数据库表中提取姓名、死亡和死亡 桌子上有 _从杀手到死者,再到事件的窃听。在pvp的情况下,我们要计算一个人是否死亡或被杀,并将其添加到他们的总数中 这可以通过查询完成,还是我必须编写脚本?这不起作用@all:Mysql 尝试获取简单db表的计数统计信息,mysql,sql,count,Mysql,Sql,Count,我想从一个简单的数据库表中提取姓名、死亡和死亡 桌子上有 _从杀手到死者,再到事件的窃听。在pvp的情况下,我们要计算一个人是否死亡或被杀,并将其添加到他们的总数中 这可以通过查询完成,还是我必须编写脚本?这不起作用@all: SELECT (select COUNT( _from ) from wiretaps group by _from) as num_kills, (select COUNT( _to ) from wiretaps group by _to) as nu
SELECT (select COUNT( _from ) from wiretaps group by _from) as num_kills,
(select COUNT( _to ) from wiretaps group by _to) as num_deaths,
_from as name
FROM wiretaps
WHERE message LIKE "%PvP:%"
预期产出:
| name | num_kills | num_deaths |
---------------------------------
| naez | 2 | 1 |
| prince | 0 | 1 |
| chuck | 1 | 0 |
| salty | 0 | 1 |
尝试从子查询中删除GROUPBY子句。我不确定您要做什么。您可以发布示例数据和预期结果,或者制作一个SQLFIDLE吗?只计算总行数您可以使用窃听中的select count*计算总行数。不,这就是取出group by子句的作用。我试着把它格式化为名字,死亡,死亡。尽管我对此投了赞成票,但我认为一个简单的工会比一个全体工会更为正确。如果buddy的死亡数与buddy的死亡数相同,则union all将返回两行,并且总和将给出两倍的正确值。@DanBracuk否,因为计算死亡数的子查询的死亡数为0,反之亦然。
| name | num_kills | num_deaths |
---------------------------------
| naez | 2 | 1 |
| prince | 0 | 1 |
| chuck | 1 | 0 |
| salty | 0 | 1 |
select name, sum(num_kills) num_kills, sum(num_deaths) num_deaths
from (
select _from name, count(*) num_kills, 0 num_deaths
from wiretaps
where message like '%PvP:%'
group by _from
union all
select _to name, 0 num_kills, count(*) num_deaths
from wiretaps
where message like '%PvP:%'
group by _to) x
group by name