Создание ВИДА в MySQL - PullRequest
       18

Создание ВИДА в MySQL

1 голос
/ 21 февраля 2012

Я хотел бы создать представление из следующей таблицы.Эта таблица содержит много записей, и моя цель состоит в том, чтобы иметь представление, содержащее определенные ИТОГИ (суммы) для столбца A и столбца B, но основанные на различных предложениях WHERE.В настоящее время я создал два отдельных представления для отслеживания необходимых мне сумм.

Мой вопрос заключается в том, могу ли я сделать это в одном представлении, в отличие от двух отдельных представлений.

ТАБЛИЦА: КОЛОНКА ВРЕМЕНИ ПОЛЬЗОВАТЕЛЯ A КОЛОННА B

Я хочу отслеживать следующие два итога:

ИТОГО 1: ВЫБЕРИТЕ ПОЛЬЗОВАТЕЛЬСКИЙ, СУММА (ВРЕМЯ) ИЗ ТАБЛИЦЫ, ГДЕ КОЛОННА A <> 0ИТОГО 2: ВЫБЕРИТЕ USERID, СУММУ (ВРЕМЯ) ИЗ ТАБЛИЦЫ, ГДЕ КОЛОННА B <> 0

Есть ли способ получить эти 2 итога в одном запросе?

Ответы [ 2 ]

2 голосов
/ 21 февраля 2012
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
0 голосов
/ 21 февраля 2012

Представления в MySQL не могут содержать несколько запросов, но это не похоже на то, что вам обязательно нужно представление.Почему бы просто не сделать

SELECT USERID, SUM(TIME) FROM TABLE WHERE COLUMN A <> 0
UNION
SELECT USERID, SUM(TIME) FROM TABLE WHERE COLUMN B <> 0

Разве это не дает вам то, что вам нужно?

...