Mysql子查询帮助

时间:2011-07-15 20:34:05

标签: mysql subquery

我有一个表有两种类型的记录 - 更新和结束(EventType - Column)。

更新记录具有PID和网页详细信息,其中结束记录具有卷(上载和下载)和PID详细信息(无网页详细信息:()。两种记录类型的公共字段均为PID。

现在从表中我需要获得所有网站的SUM(ULVolume + DLVolume) 即 - 得到每个的总和(ULVo + DLVol)(得到每个的PID(得到不同的网站))

最后,这是我正在寻找的单个查询。需要一些帮助。 附:数据库是巨大的> 10G和查询,这需要更少的时间。

预期产出

Website     Sum(ULVolume+DLVolume)
apple.com   112343XXXXX
google.com  121232XXXXX

更新记录:

+-----------------+--------+---------------+----------+----------+
| PID             | Event  | Web           | ULVolume | DLVolume |
+-----------------+--------+---------------+----------+----------+
| 199710687818416 | update | kaspersky.com |          |          |
| 199710687818417 | update | google.com    |          |          |
| 199710687818418 | update | yahoo.com     |          |          |
+-----------------+--------+---------------+----------+----------+

结束记录:

+-----------------+-------+------+----------+----------+
| PID             | Event | Web  | ULVolume | DLVolume |
+-----------------+-------+------+----------+----------+
| 199710687818416 | end   |      |     5187 |   309683 |
+-----------------+-------+------+----------+----------+

1 个答案:

答案 0 :(得分:1)

试试这个:

select
    u.website,
    sum(e.ULVolume + e. DLVolume) as volume
from mytable e
left join mytable u on u.PID = e.PID and u.event ='update'
where e.Event = 'end'
group by 1;