У меня есть такое мнение
col1 col2 col3 year class type
1 3 4 2017 A 1
4 5 7 2017 A 2
3 4 2 2017 A 3
3 1 1 2017 A 4
1 1 1 2017 B 1
0 0 2 2017 B 2
2 2 0 2017 B 3
Я хочу создать новое представление на основе приведенного выше, я хочу суммировать столбцы того же года, если «тип» не равен 1. Если type = 1, новое значение - «да», если type! = 1 » нет ".
col1 col2 col3 year class new
1 3 4 2017 A yes
10 10 10 2017 A no
1 1 1 2017 B yes
2 2 2 2017 B no
Как я могу это сделать?
2 ответа
Вы можете использовать это.
SELECT
SUM(col1) col1,
SUM(col2) col2,
SUM(col3) col3,
year,
class,
(case when type = 1 then 'yes' else 'no' end) as new
FROM MyTable
GROUP BY year, class, (case when type = 1 then 'yes' else 'no' end)
Результат:
col1 col2 col3 year class new
----------- ----------- ----------- ----------- ----- ----
10 10 10 2017 A no
1 3 4 2017 A yes
2 2 2 2017 B no
1 1 1 2017 B yes
В зависимости от вашей таблицы это будет примерно так
SELECT SUM(col1), SUM(col2), SUM(col3), year, class
FROM table WHERE type <> 1
GROUP BY year, class
Похожие вопросы
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.