Mysql 尝试获取简单db表的计数统计信息

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

我想从一个简单的数据库表中提取姓名、死亡和死亡

桌子上有

_从杀手到死者,再到事件的窃听。在pvp的情况下,我们要计算一个人是否死亡或被杀,并将其添加到他们的总数中

这可以通过查询完成,还是我必须编写脚本?这不起作用@all:

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