То, что вы описываете, - это разница между OLTP и OLAP базой данных.
OLTP ( Обработка транзакций в режиме онлайн ) Этот тип данных представляет ежедневные транзакции. Например, инвентаризации, изменения, удаления. Клиент добавляет в корзину запросы, заказы, возвраты. Это самые мелкие транзакции, которые происходят весь день.
OLAP ( Аналитическая обработка в режиме реального времени ). Этот тип данных представляет собой накопленные данные за заданные периоды времени. Например: ежедневно, еженедельно, ежемесячно, ежеквартально, ежегодно. Купив эту информацию в отдельном наборе таблиц или даже в базе данных, вы можете запускать различные запросы, чтобы получить нужные вам отчеты.
Проблема, с которой вы можете столкнуться, заключается в том, что вам нужна информация OLAP, когда у вас есть только данные OLTP.
Если вы хотите ежедневные продажи по отдельным категориям, то создайте набор ежедневных таблиц OLAP и каждую ночь запускайте отдельный процесс или набор процессов, которые архивируют эти данные в эти таблицы.
Каждый месяц вы можете запускать разные процессы для создания ежемесячных таблиц OLAP.
Поначалу это довольно сложная работа, но она дает вам лучшее из обоих миров. Вы можете играть в игры «что делать, если» весь день против ваших данных OLAP, не влияя на клиентов или повседневные операции.