|
Парочка полезных SQL запросов, которые вы можете запустить на имеющихся данных, собранных vkInviter. Предпологается, что таблица с данными называется vkinviter и что эта таблица сделана для vkInviterServer 1.6 и выше, то есть имеет столбец date, iid и status которые заполнены данными, а не ноликами ;) Итак, внимание!
Запрос покажет статистику активности за последние дни:
- adate - дата,
- time_fr, time_to - время первого и последнего приглашения,
- inviters - кол-во приглашающих,
- users - кол-во приглашений за день
- groups - кол-во групп, в которые приглашали за день
SELECT
DATE(date) adate,
TIME( MIN(date) ) time_fr,
TIME( MAX(date) ) time_to,
COUNT(DISTINCT iid) inviters,
COUNT(1) users,
COUNT(DISTINCT gid) groups
FROM vkinviter
WHERE date > 0 AND iid > 0 AND status = 1
GROUP BY adate
ORDER BY adate DESC
Этот запрос делает выборку, группируя данные по датам, показывая минимальное-максимальное время приглашения, выбирая уникальных приглашающих и количество уникальных номеров групп. Простой запросик, однако может ндолго "повесить" ваш сервер если нет необходимой индексации на полях gid, iid и status.
Следующий запрос покажет эффективность комманды приглашающих:
- ид приглашающего (iid),
- количество высланых им приглашений (invited),
- время проведённое за этим занятием, в минутах (minutes)
- и эффективность - кол-во приглашений в минуту (eff)
SELECT
iid,
SUM(c) invited,
COUNT(DISTINCT d) minutes,
SUM(c)/COUNT(DISTINCT d) eff
FROM (
SELECT
iid,
round(date/100) d,
count(1) c
FROM `vkinviter`
WHERE date > 0 AND iid > 0 AND status = 1
GROUP BY iid, d
) a
GROUP BY iid
ORDER BY invited DESC Запрос состоит из двух частей. Вложенная часть запроса делит приглашения на "пачки". Каждая пачка - это одна минута проведённого за приглашениями времени. Внешняя часть запроса складывает получившееся число минут и суммирует число приглашенных, вычисляя эффективность. Запрос не претендует на оригинальность, уверен можно сделать более элегантно ;)
|