在mysql中创建VIEW

时间:2012-02-21 17:31:26

标签: mysql views

我想从下表创建一个视图。这个表包含许多记录,我的目标是让一个视图保持列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个总计?

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

这不能满足你的需求吗?