Я пытаюсь найти час дня, когда абонент в моей базе данных открывает большинство писем.SQL Server Компиляция и вычисление данных из нескольких таблиц
У меня есть таблица с кучей идентификаторов подписчиков, у меня есть другая таблица с открытыми записями электронной почты, сопоставленная с таблицей, в которой хранятся отправленные письма, которые затем сопоставляются с конкретными идентификаторами подписчиков.
Итак, мое основное желание состоит в том, чтобы получить вывод таблицы с каждой строкой, являющейся конкретным подписчиком (идентификатором абонента), и часом, когда они открыли больше всего сообщений электронной почты. Поэтому мне нужно сначала пройти через каждый идентификатор подписчика, создайте временную таблицу, каждая строка которой будет отличаться от количества писем, которые они открыли в этот час. Затем мне нужно сделать выбор Max, чтобы получить максимальную строку из этой таблицы temp, затем мне нужно поместить это в мою выходную таблицу и повторить для следующего подписчика.
Все, что касается меня, это час дня. Меня не волнует месяц, год или время. Я просто хочу знать, что час дня люди в основном открывают электронные письма.
Я пытался и пытался, используя CTE и в то время как петли, но безрезультатно. Любая помощь будет принята с благодарностью.
Вот (минимизируется) структура:
Таблица: Абоненты
| подписчик | last_name | first_name |
| 9999999999 | Смит | Джон |
Стол: SentEmail
| message_id | подписчик |
| 9028340 | 9999999999 |
Таблица: OpenEmails
| open_id | message_id | dtopened |
| 9923489 | 9028340 | '2011-11-22 15: 53: 02.157' |
Моя цель, выходной таблицы, как это (последний столбец ненужно) с каждым subscriber_id быть уникальным в списке:
| подписчик | OpenHour | NumOpens |
| 999999999 | 10 | 32 |
Добро пожаловать в SO. Лучший способ продолжить этот вопрос - создать определение данных и то, что вы пробовали до сих пор (DML), используя SQLFiddle (http://sqlfiddle.com/). –
Попробуйте присоединиться к этим таблицам, затем группе по идентификатору абонента, DATEPART (HH, opendate), затем подсчитывайте идентификатор электронной почты или что-то еще. Если вам нужен код запроса, вам нужно поделиться своей схемой и некоторыми примерами данных. – ljh