问题描述
|
İ有一个名为videos的视频表,这是这些列:
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 \”的行,并将此用户的视频观看次数总计为总观看次数。
谢谢。
解决方法
我读了这个问题,因为您想在一个查询中获得所有行以及这些行的总和。
您可以使用WITH ROLLUP一键完成所有操作,例如
select *,sum(v_view) as total from videos
where v_uid=45
group by vid with rollup;
有点骇人听闻,因为我们实际上并不需要分组依据(这就是为什么我要在行ID vid上分组)。您将得到所有单独的行,最后是包含总和的最后一行(它也将具有NULL vid,这可能有助于识别它)
如果您只需要一个视图的总和,则可以执行更简单的操作
select sum(v_view) as total from videos where v_uid=45;