У меня проблемы с формулировкой запроса SQL в Oracle. Вот мой пример таблицы:
+----+-----------+-----------+--------+
| id | start | end | number |
+----+-----------+-----------+--------+
| 1 | 21-dec-19 | 03-jan-20 | 12 |
| 2 | 23-dec-19 | 05-jan-20 | 10 |
| 3 | 02-jan-20 | 15-jan-20 | 9 |
| 4 | 09-jan-20 | NULL | 11 |
+----+-----------+-----------+--------+
И вот что у меня есть:
SELECT
SUM(number) AS total_number,
SUM(number) AS total_ended_number -- (WHERE end IS NOT NULL)
FROM table
WHERE ... -- a lot of where clauses
И желаемый результат:
+--------------+--------------------+
| total_number | total_ended_number |
+--------------+--------------------+
| 42 | 31 |
+--------------+--------------------+
Я понимаю, что мог бы сделать отдельный выбор внутри 'total_ended_number', но у исходного выбора уже есть куча предложений where, которые также необходимо применить к внутреннему выбору.
Я могу сформулировать это в 2 отдельных выбора или 2 вложенных выбора с дублированием всех предложений where, но моя цель - не дублировать предложения where, которые будут использоваться в таблице.