в одном запросе, как это сделать?
WITH subtractMinutes(now(), 5) as nowStart, subtractHours(now(), 1) as hauStart, subtractDays(now(), 1) as dauStart, subtractDays(now(), 7) as wauStart, subtractMonths(now(), 1) as mauStart\nSELECT uniqExactIf(RemoteUser, Time >= nowStart) as M5AU, uniqExactIf(RemoteUser, Time >= hauStart) as HAU, uniqExactIf(RemoteUser, Time >= dauStart) as DAU, uniqExactIf(RemoteUser, Time >= wauStart) as WAU, uniqExact(RemoteUser) as MAU FROM $table WHERE Time >= mauStart
SELECT DISTINCT user_id, 'today' FROM activity WHERE date=today() UNION ALL SELECT DISTINCT user_id, 'week' FROM activity WHERE date>=toStartOfWeek(today()) UNION ALL SELECT DISTINCT user_id, 'month' FROM activity WHERE date>=toStartOfMonth(today()) если юзеров дофига у вас, будет больно если не много (сотня тысяч) то переживете условия WHERE можете поменять типа date>= NOW() - INTERVAL 1 DAY, непонятно что такое "за день за месяц"
вам именно списокили количество?
Обсуждают сегодня