Ответ
Для подсчёта уникальных пользователей в SQL используй COUNT(DISTINCT user_id). Это исключит дубликаты, учитывая каждого пользователя только один раз.
Пример:
SELECT COUNT(DISTINCT user_id) AS unique_users
FROM user_activity;
Если нужно анализировать уникальность по нескольким полям (например, user_id + session_id), можно использовать:
SELECT COUNT(DISTINCT CONCAT(user_id, '-', session_id)) AS unique_sessions
FROM user_activity;
В NoSQL (например, MongoDB) применяй $group с $addToSet:
db.user_activity.aggregate([
{ $group: { _id: "$user_id", count: { $sum: 1 } } },
{ $count: "unique_users" }
]);
Для больших данных эффективнее предварительная агрегация или приближённые методы (HyperLogLog).