Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 как правильно составить запрос при составлении таблиц  [new]
Kontox
Member

Откуда:
Сообщений: 146
Не подскажите, почему если я соединяю (inner join)
у меня получаются лишние строки.
вот 2 файла
http://rgho.st/8Hqr8sQSG в этом файле 11700 строк
а в этом
http://rgho.st/6X7VbLmjZ 700 000

соединяю по ключам
"ClientID","EmailMessageId
по идеи должно быть 11700 строк, а у меня 88000. Как такое возможно? откуда дубляж
Дело в том, что эти 11700 из тех кто купил услугу. Там вообще нужно создать столбец и заполнить его единицами. Я это сделаю
Как написать запрос, чтобы
выходе была таблица где
1. первые 11700 строк это с откликом, т.е. чтобы сначала шли строки с единицами
потом те что совпали по ClientID, но без единицы, а потом уже те что не совпали
просто потом уже аналитики будут анализировать.
16 фев 17, 19:37    [20219174]     Ответить | Цитировать Сообщить модератору
 Re: как правильно составить запрос при составлении таблиц  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Kontox
Не подскажите, почему если я соединяю (inner join)

Неужели не лень код пересказывать вместо того, чтобы его просто скопировать?

Kontox
по идеи должно быть 11700 строк, а у меня 88000. Как такое возможно? откуда дубляж

По чьей идее? У вас есть уникальный индекс по "ClientID","EmailMessageId" в обеих таблицах?

Сообщение было отредактировано: 16 фев 17, 19:43
16 фев 17, 19:42    [20219186]     Ответить | Цитировать Сообщить модератору
 Re: как правильно составить запрос при составлении таблиц  [new]
Kontox
Member

Откуда:
Сообщений: 146
в файле
автор
set 1_2
взяты только те наблюдения из файла
автор
set 1
1 , которые сделали отклил на услугу.
Мне надо соединить эти 2 таблицы, но так, чтобы там были только, те кто откликнулся на услугу и те кто не отклинулся, соответственно, надо как-то дубли убрать.
Кода sql у меня нет.
Мне его нужно написать. А джойнил я в другой среде. Язык R
автор
merge(x, y, by =c("ClientID", "EmailMessageId"), all.x = TRUE)

это выражение аналог sql left join
Но есть библиотека в R которая читает скулевский код, поэтому я и попросил, написать мне как правильно в sql прописать запрос, а потом в R я бы его выполнил и продолжил анализ.

Вот такая история.
Сможете помочь составить запрос
16 фев 17, 20:57    [20219371]     Ответить | Цитировать Сообщить модератору
 Re: как правильно составить запрос при составлении таблиц  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Kontox
Сможете помочь составить запрос
Если вы хотите запрос на T-SQL, то для этого достаточно выполнить рекомендации, давно заботливо для вас составленные: https://www.sql.ru/forum/127456/rekomendacii-po-oformleniu-soobshheniy-v-forume , пункт 4 и пункт 6.

Если вы хотите запрос на каком-то другом языке, то вопрос надо задавать в каком-то другом форуме.

Сообщение было отредактировано: 17 фев 17, 00:19
17 фев 17, 00:13    [20219749]     Ответить | Цитировать Сообщить модератору
 Re: как правильно составить запрос при составлении таблиц  [new]
Kontox
Member

Откуда:
Сообщений: 146
Спасибо, на другом форуме нашел решение
select clientid,emailmessageid,productgroupName,mainproductgroupname,null cnttrn,idatediff,null score from set1
union all select clientid,emailmessageid,null productgroupname,null mainproductgroupname,cnttrn,idatediff,score from set2
21 фев 17, 10:47    [20232006]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить