![]() |
подскажите, как правильно составить запрос
не подскажите, почему если я соединяю (inner join)
у меня получаются лишние строки. вот 2 файла http://rgho.st/8Hqr8sQSG в этом файле 11700 строк а в этом http://rgho.st/6X7VbLmjZ 700 000 соединяю по ключам "ClientID","EmailMessageId по идеи должно быть 11700 строк, а у меня 88000. Как такое возможно? откуда дубляж Дело в том, что эти 11700 из тех кто купил услугу. Там вообще нужно создать столбец и заполнить его единицами. Я это сделаю Как написать запрос, чтобы выходе была таблица где 1. первые 11700 строк это с откликом, т.е. чтобы сначала шли строки с единицами потом те что совпали по ClientID, но без единицы, а потом уже те что не совпали просто потом уже аналитики будут анализировать. |
1. Какой именно запрос Вы делаете? INNER JOIN еще ни о чем не говорит.
2. Не могу пройти по ссылкам. Можете схематично набросать таблицы?! 3. См. пункты 1, 2. |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Запроса у меня нет, его надо написать в сиквеле, я в другой программе пробЫвал, в R. Вы наврядли её знаете. Но подумал в sql лучше будет. Вот и попросил помочь.
Ребят не знаю как показать структуру вот скрин тут 2 таблицы в таблице set 1-2 это данные из set 1-1 которые откликнулись на рекламу, я единицы проставил. Нужно Сджойнить эти 2 таблицы но, чтобы сначала шли эти 11700 наблюдений из set 1-2 затем все остальное Но тут клиент id ввиде хеша. Посути это ФИо Иванов И.И. Например Иванов И.И. 17.02.2017 не откликнулся на е-меил "А" рассылку 0 Иванов И.И. 18.02.2017 откликнулся на е-меил "А" рассылку 1 вот отсюда то и дубли пошли. Там где score не единица заполняем по нулям. Т.е. в итоговой таблице должно быть около 11700 наблюдений с единицами, и остальные по нулям. 690165 нулей. Если невнятно объяснил, говорите, перефразируюсь |
vanoman, понимаете, в чём дело… Вы пишете, что:
Цитата:
Код:
SELECT [Set 1-1].ClientID, Count([Set 1-1].ClientID) AS [Count-ClientID] Скрытый текст
![]() Код:
SELECT [Set 1-1].EmailMessageId, Count([Set 1-1].EmailMessageId) AS [Count-EmailMessageId] Скрытый текст
![]() Код:
SELECT [EmailMessageId] & [ClientID] AS Выражение1, Count([EmailMessageId] & [ClientID]) AS Выражение2 Скрытый текст
![]() Посему при попытках связывания у Вас идёт умножение сущностей. Цитата:
Цитата:
|
Вложений: 1
Iska, Вы супер:)
да score нет, я просто сразу не проставил. вот теперь есть. http://rgho.st/92wts9QvM Тогда подскажите, как решить задачу. Я правда извиняюсь что не могу это технически объяснить со структурой базы данных. Но ясность уже есть 1.В файле set 1_1 все наблюдения 2.в файле set 1_2 только которые отклинулись на рекламную компанию, я сделал столбец score 3. Тогда нужно Например. вот уникальный ID из set 1_1 Код:
ClientID EmailMessageId iDateDiff Код:
ClientID EmailMessageId CntTrn iDateDiff score Сможете показать? т.е. на выходе должно быть так прикрепил эксель |
Цитата:
Код:
SELECT [ClientID] & [EmailMessageId] & [iDateDiff] AS Выражение1, Count([ClientID] & [EmailMessageId] & [iDateDiff]) AS Выражение2 Скрытый текст
![]() Я не понимаю, как тут можно связывать. В общем, мне достаточно тяжело представить, что есть что, без подобной: Скрытый текст
![]() |
На другом форуме нашел решение:)
Но с ключами, нужно играть. Вы тут правы, т.к. полного совпадения ожидать не приходится, ключи нужно менять, клиентИД+productgroupname и так далее. Код:
select clientid,emailmessageid,productgroupName,mainproductgroupname,null cnttrn,idatediff,null score from set1 |
Время: 17:28. |
Время: 17:28.
© OSzone.net 2001-