我想从下表创建一个视图。这个表包含许多记录,我的目标是让一个视图保持列A和列B的某些TOTALS(总和),但是基于不同的WHERE子句。目前我创建了两个单独的视图来跟踪我需要的总和。
我的问题是,我是否可以在一个视图中执行此操作,而不是两个单独的视图。
表:USERID TIME COLUMN A COLUMN B
我想跟踪以下两个总数:
TOTAL 1:SELECT USERID,SUM(TIME)FROM TABLE WHERE COLUMN A<> 0
总计2:选择USERID,SUM(TIME)FROM TABLE WHERE COLUMN B<> 0
有没有办法在一个查询中获得这2个总计?
答案 0 :(得分:2)
SELECT USERID,
SUM(CASE WHEN COLUMN_A<>0 THEN TIME ELSE 0 END) AS ColumnASum,
SUM(CASE WHEN COLUMN_B<>0 THEN TIME ELSE 0 END) AS ColumnBSum
FROM TABLE
GROUP BY USERID
答案 1 :(得分:0)
MySQL中的视图不能包含多个查询,但听起来并不一定需要视图。为什么不做呢
SELECT USERID, SUM(TIME) FROM TABLE WHERE COLUMN A <> 0
UNION
SELECT USERID, SUM(TIME) FROM TABLE WHERE COLUMN B <> 0
这不能满足你的需求吗?