Итак, у меня есть 3 метрических столбца, которые представляют интерес:
OPENED_AT, READ_AT, CLICKED_AT
, каждый из которых представляет собой DATETIME с указанием действий, совершаемых пользователями.
Цель состоит в том, чтобы показать график в течение года, разбитый на недели, показывающий, сколько пользователей открыли, прочитали весь контент и нажали кнопку.
Примерно так:

Моя главная цель - оставаться аккуратными и эффективными во всем коде и запросах.Я хотел бы практически разделить каждый цвет (метрика) на неделю.Я хотел бы воздержаться от использования трех отдельных запросов SELECT с другими GROUP BY (WEEK_OPENED_AT)
, чем GROUP BY (WEEK_READ_AT)
и GROUP BY (WEEK_CLICKED_AT)
.
Я предполагаю, что это сработает:
SELECT WEEK(`OPENED_AT`) AS WEEK_OPENED_AT, COUNT(`OPENED_AT`) AS
COUNT_OPENED_AT from `tbl_usage` GROUP BY WEEK_OPENED_AT
, затем
SELECT WEEK(`READ_AT`) AS WEEK_READ_AT, COUNT(`READ_AT`) AS COUNT_READ_AT
from `tbl_usage` GROUP BY WEEK_READ_AT
, затем последний
SELECT WEEK(`CLICKED_AT`) AS WEEK_CLICKED_AT, COUNT(`CLICKED_AT`) AS
COUNT_CLICKED_AT from `tbl_usage` GROUP BY WEEK_CLICKED_AT
Могу ли я достичь такого результата, которыйс одним SELECT?
Спасибо заранее
PS: Может быть, можно было бы добавить порядковый номер, например 1..52, представляющий номера недели, чтобы сгруппировать все по сегментам?
Проблема в том, что недели могут проходить без каких-либо щелчков, но многие говорят, что открывается.