У меня есть таблица отдельного пользователя, и я пытаюсь придумать запрос, который возвращает общее количество всех пользователей, сгруппированных по дате наряду с общим количеством пользователей, сгруппированных по дате, кто имеет определенный клиент.
Вот то, что я имею к настоящему времени, где существует общее количество пользователей, сгруппированных по дате, но, может казаться, не выясняет, как получить количество тех пользователей где пользователь client_id = x
SELECT user.created,
COUNT(user.id) AS overall_count
FROM user
GROUP BY DATE(user.created)
попытка за строку заканчивается как это:
[created] => 2010-05-15 19:59:30
[overall_count] => 10
[client_count] => (some fraction of overall count, the number of users where
user.client_id = x grouped by date)
Это должно помочь с MySQL:
SELECT
user.created,
COUNT(user.id) AS overall_count,
SUM(user.client_id = x) AS client_count
FROM user
GROUP BY DATE(user.created)
Логическое выражение user.client_id = x
возвращает 1
, если это правда, и 0
в противном случае, поэтому вы можете просто суммировать их.
С другой базой данных вы бы сделали
SUM( CASE WHEN user.client_id = x THEN 1 ELSE 0 END ) AS client_count