如何在获取mysql中的所有行的同时对值求和

时间:2011-05-26 09:26:18

标签: mysql sum

我有一个名为视频的视频表,这里是列:

vid    v_uid    v_view   v_title   v_info
1       45      56487     foo       foo
2       45      455
3       45      98989
...

我的条件是“v_uid = 45”,我想让行属于这个ID“45”并将此用户视频视图视为总观看次数。

感谢。

1 个答案:

答案 0 :(得分:4)

我读了这个问题,因为你想在一个查询中获取所有行这些行的总和。

您可以使用WITH ROLLUP一次性完成所有操作,例如

select *,sum(v_view) as total from videos 
where v_uid=45 
group by vid with rollup;
有点hacky,因为我们并不真正需要这个组(这就是为什么我要对行id vid进行分组)。您最终将获得所有单独的行,以及包含总和的最后一行(它也将具有NULL vid,这可能有助于识别它)

如果您只想要一个视图的总和,那么您可以执行更简单的事情

select sum(v_view) as total from videos where v_uid=45;