Пишу систему подсчета и перераспределения трафика.
В базе(mysql) имеются таблицы sites
, ins
, outs
, clicks
.
Таблица sites
иммет поля id
и domain
Таблицы ins
outs
clicks
имеют поля site_id
created
Возможно ли одним запросом получить все данные из таблицы sites
+ получить количество ins
, outs
, clicks
, созданные за последние 3600 и 86400 секунд, принадлежащие каждому из сайтов?
Мне кажется проще будет использовать подзапросы с выборкой количества
Основной запрос:
SELECT `sites`.*,
(<SUB_SELECT>) AS `ins_count`,
(<SUB_SELECT>) AS `outs_count`,
(<SUB_SELECT>) AS `click_count`
FROM `sites`
WHERE 1;
Подзапрос <SUB_SELECT>
, например для количества кликов за последние 3600 секунд:
SELECT COUNT(*) FROM `clicks`
WHERE `site_id` = `sites`.`id`
AND `created` BETWEEN UNIX_TIMESTAMP()-3600 AND UNIX_TIMESTAMP()
Специфика проверки времени "за последние 3600 секунд" зависит от формата поля created
, оно может быть TIMESTAMP или INT или что-то еще, смотрите сами, как у вас
Полный запрос выглядит ужасно и не понятно, но я рискну его привести:
SELECT `sites`.*,
(
SELECT COUNT(*) FROM `ins`
WHERE `site_id` = `sites`.`id`
AND `created` BETWEEN UNIX_TIMESTAMP()-3600 AND UNIX_TIMESTAMP()
) AS `ins_count`,
(
SELECT COUNT(*) FROM `outs`
WHERE `site_id` = `sites`.`id`
AND `created` BETWEEN UNIX_TIMESTAMP()-3600 AND UNIX_TIMESTAMP()
) AS `outs_count`,
(
SELECT COUNT(*) FROM `clicks`
WHERE `site_id` = `sites`.`id`
AND `created` BETWEEN UNIX_TIMESTAMP()-3600 AND UNIX_TIMESTAMP()
) AS `click_count`
FROM `sites`
WHERE 1;
В итоге имеем в результате все поля sites
и 3 дополнительные поля из подзапросов с количеством. Если нужно еще три поля с количеством за последние 86400, вы знаете что делать
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Наткнулся в одном видео на пример, когда количество товаров в категориях для меню доставалось из elasticsearch:
Есть двойной цикл for с проверкой внутри на совпадение с заранее добытым массивом id
Добавил вторую форму, подскажите, как в файле Appxaml добавить стиль на вторую форму? P