我有一个名为视频的视频表,这里是列:
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”并将此用户视频视图视为总观看次数。
感谢。
答案 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;