Есть таблица с клиентами (clients) и таблица с запусками программы (runs), в таблице runs столбец client связан с AUTO_INCREMENT в таблице clients (id).
Первая запись клиента в таблице runs - это первый запуск им программы или просто говоря регистрация в системе, в таблице runs также указывается дата.
Нужно тремя (или одним) запросом посчитать количество новых пользователей (уникальных запусков) за сегодня (именно сегодня, а не за последние 24 часа), количество уникальных запусков (всех пользователей сразу) за сегодня и просто общее количество запусков за сегодня.
Столбец `date` сохраняет дату в формате UNIX, пример - 1676460404.
Вот так я получаю общее количество запусков за сегодня:
SELECT count(*) from `runs` where `date` > unix_timestamp(curdate())
Мне пришла идея воспользоваться GROUP BY, однако я забыл, что count считает для каждой группы отдельно и этот вариант не работает
Для подсчёта новых пользователей:
SELECT count(*) from `runs` group by `client` having min(date) > unix_timestamp(curdate())
Для подсчёта уникальных запусков:
SELECT count(*) from `runs` group by `client`