У меня есть таблица, которая содержит данные о пользовательских событиях. Некоторые записи являются событиями дохода, а некоторые - событиями загрузки. У событий загрузки есть URL-адреса, содержащие параметры URL, а к событиям выручки и загрузки прикреплены данные session_id и user_id. Я написал запрос, который будет извлекать идентификаторы пользователя и сеанса из этой таблицы на основе параметров URL-адреса для событий загрузки за последние 45 дней, и я хотел бы затем искать события дохода с соответствующими идентификаторами пользователя и сеанса и общей суммой для них. ,Вот мой первый запрос:
SELECT user_id, session_id
FROM events
WHERE event_type = 'load'
AND client_id = 1234
AND calling_url LIKE '%utm_source=so%'
AND server_stamp BETWEEN DATE_SUB(NOW(), INTERVAL ? DAY) AND NOW()
Запрос, который будет получать доход от одного пользователя, будет выглядеть примерно так:
SELECT SUM(revenue_subtotal)
FROM events
WHERE event_type = 'revenue'
AND client_id = 1234
AND user_id = 'thisUUID'
AND session_id = 'thisSID'
Поэтому я пытаюсь найти способ связатьэти два запроса для суммирования дохода от всех комбинаций идентификаторов пользователей / сеансов, возвращаемых из первого запроса непосредственно в SQL (все в одном полном запросе).
К сожалению, в этой таблице много столбцов, поэтому дается полное определение таблицы иполные выборочные данные немного трудно изобразить на SO, но я думаю, что достаточно хорошо их изложил. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация или идеи о том, как этого добиться. На данный момент единственный способ, который у меня есть, - это получить результаты первого запроса в PHP, а затем выполнить цикл выполнения нового запроса для каждой возвращаемой строки, но это может легко попасть в тысячи, поэтому я пытаюсь сохранить всев SQL, если это вообще возможно.