|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.12.2012, 15:55 | #1 |
Пользователь
Регистрация: 18.03.2011
Сообщений: 47
|
Хочу написать нормальные запросы
Здравствуйте уважаемые коллеги!
Сразу к делу, ситауция такая, есть скрипт для сбора данных по статистике партнёрской программы. Таблицы такие: shopaffiliate - поля: id, name, ... shopaffiliate_statistic - поля: affiliate_id, ip, datetime Все с виду просто, нужно придумать запрос который будет давать данные для графика в зависимости от поставленного запроса пользователя: - за неделю (все просмотры/уникальные) - за месяц (все просмотры/уникальные) - за квартал (все просмотры/уникальные) - за год (все просмотры/уникальные) ещё один интересный момент, если пользователь попросит строить за год к примеру, не собирать же статистику по 265 дням отдельно? Как-то наверное это обычно усредняется? Примеры того что написал я: Для недели (все просмотры) PHP код:
PHP код:
Еще хочу оптимизировать формирования топа партнёров, его нужно формировать как по общему доходу человека так и по уникальным показам. Подскажите? |
13.12.2012, 20:55 | #2 |
Пользователь
Регистрация: 27.12.2011
Сообщений: 86
|
Можно как то структуру БД попонятней отрисовать? Лучше в JPG приложить со связями и ключами даже.
Про "запрос за неделю (месяц/год)" запросы за последнюю неделю (месяц/год) или же выбранные пользователем? ADD SQL может быть такой $q_week_ip = ' SELECT count(ip) as all_show, ip FROM shopaffiliate_statistic WHERE datetime BETWEEN date( now() ) - interval 1 day AND now() AND affiliate_id = "'.mysql_escape_string($_GET['a_id']).'" GROUP BY ip'; Количество строк этого запроса - это количество уникальных показов. В all_show будет выводиться количество показов для IP, сумма по всему all_show даст общее количество показов. Это будет работать если я структуру верно понял. Про интервалы - (или +) INTERVAL 6 DAY - INTERVAL 7 WEEK - INTERVAL 100500 YEAR И так далее. Последний раз редактировалось Dexes; 13.12.2012 в 21:16. |
14.12.2012, 10:22 | #3 |
Пользователь
Регистрация: 18.03.2011
Сообщений: 47
|
Отличгый запрос, с виду подходит для построения статистики
Да, имелось ввиду за последний (год/неделю/месяц) Вот структура таблиц: shopaffiliate shopaffiliate_statistic shopaffiliate_transaction Хотелось бы ещё использовать объединение таблиц, чтобы за раз выдавать: и количество уникальных/всех просмотров так и количество $ полученных из таблици с транзакциями. |
14.12.2012, 12:45 | #4 |
Пользователь
Регистрация: 27.12.2011
Сообщений: 86
|
Код:
Просто после одного INNER JOIN table ON <условие> написать еще один INNER JOIN по той же схеме Это при учете что 1 к 1му всё (что конечно врят ли) Если же нет можно за 2 SQL всё выцепить Обработали сначала первый запрос, накопили affiliate_id в массив Далее Код:
Как то так. Последний раз редактировалось Dexes; 14.12.2012 в 12:49. |
14.12.2012, 13:33 | #5 |
Пользователь
Регистрация: 18.03.2011
Сообщений: 47
|
Класс, спасибо большое
А то скрипт моей партнерки уж очень невзрачен был, теперь проапгрейдим! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите написать sql запросы | student223 | SQL, базы данных | 8 | 16.05.2012 14:41 |
Хочу написать кейлогер | wwe2012 | Общие вопросы C/C++ | 18 | 31.03.2011 07:56 |
Написать запросы | xbarmaleyx | SQL, базы данных | 1 | 27.03.2011 15:49 |
Хочу написать 3D-движок | qazar | Помощь студентам | 1 | 10.02.2011 15:51 |