Учитывая набор записей базы данных, которые записывают дату, когда объект входит в определенное состояние, я хотел бы создать запрос, который показывает, сколько объектов находится в каждом состоянии в любую конкретную дату. Результаты будут использованы для создания отчетов о тенденциях, показывающих, как количество объектов в каждом состоянии изменяется со временем.SQL-запрос для подсчета количества объектов в каждом состоянии в каждый день
У меня есть таблица вроде следующей, который записывает дату, когда объект входит в определенное состояние:
ObjID EntryDate State
----- ---------- -----
1 2014-11-01 A
1 2014-11-04 B
1 2014-11-06 C
2 2014-11-01 A
2 2014-11-03 B
2 2014-11-10 C
3 2014-11-03 B
3 2014-11-08 C
Есть произвольное число объектов и состояний.
Мне нужно создать запрос, который возвращает количество объектов в каждом состоянии каждой даты. Результат будет выглядеть следующим образом:
Date State Count
---------- ----- -----
2014-11-01 A 2
2014-11-01 B 0
2014-11-01 C 0
2014-11-02 A 2
2014-11-02 B 0
2014-11-02 C 0
2014-11-03 A 1
2014-11-03 B 2
2014-11-03 C 0
2014-11-04 A 0
2014-11-04 B 3
2014-11-04 C 0
2014-11-05 A 0
2014-11-05 B 3
2014-11-05 C 0
2014-11-06 A 0
2014-11-06 B 2
2014-11-06 C 1
2014-11-07 A 0
2014-11-07 B 2
2014-11-07 C 1
2014-11-08 A 0
2014-11-08 B 1
2014-11-08 C 2
2014-11-09 A 0
2014-11-09 B 1
2014-11-09 C 2
2014-11-10 A 0
2014-11-10 B 0
2014-11-10 C 3
Я работаю с базой данных Oracle.
Я не смог найти пример, соответствующий моему делу. Следующие вопросы выглядят как они просят решения подобных, но различных проблем:
Любая помощь или советы, которые могут быть предоставлены были бы оценены.
Ваши ожидаемые результаты включают данные не в вашей таблице ... откуда это происходит? – Ben
База данных записывает дату, когда объект входит в определенное состояние. Объект остается в этом состоянии, пока он не перейдет в другое состояние. В идеале результаты запроса будут содержать количество объектов в каждом состоянии даже для дат, на которых не произошло никаких переходов состояния. – jmm3