powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема с выборкой уникальных значений
25 сообщений из 61, страница 2 из 3
Проблема с выборкой уникальных значений
    #38236404
Фотография Knyazev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapЧто-то уже и воды отошли,
а всё никак не родится! :((

ух...думал форумом ошибся
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38236476
Amateur7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хорошо, допустим возьмем проверку всей строки на уникальность:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT 
DISTINCT 
f.id_service as f_id_service,
 f.id_city as f_id_city, 
f.name as f_name, 
f.address as f_address, 
f.business as f_business, 
f.web as f_web, 
f.phone as f_phone, 
f.id_firm as f_id_firm, 
p.name as p_name 
FROM Firm f left join Price p on p.id_service=f.id_service AND p.id_city=f.id_city AND p.id_firm=f.id_firm



тогда как быть в таком случае?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
SELECT 
DISTINCT TOP 20 
f.id_service as f_id_service,
 f.id_city as f_id_city, 
f.name as f_name, 
f.address as f_address, 
f.business as f_business, 
f.web as f_web, 
f.phone as f_phone, 
f.id_firm as f_id_firm, 
p.name as p_name 
FROM Firm f left join Price p on p.id_service=f.id_service AND p.id_city=f.id_city AND p.id_firm=f.id_firm 

WHERE 

f.name 
NOT IN (
SELECT DISTINCT TOP 20 
f.name FROM Firm f 
left join Price p on p.id_service=f.id_service AND p.id_city=f.id_city AND p.id_firm=f.id_firm 
WHERE p.id_city='73041' AND p.include='1' AND p.blocked='0' AND f.blocked='0' AND p.id_group='44' AND p.id_subgroup='266' 
ORDER BY f.name ASC
) 
AND p.id_firm=f.id_firm AND p.id_city='73041' AND p.include='1' AND p.blocked='0' 
AND f.blocked='0' AND p.id_group='44' AND p.id_subgroup='266'
ORDER BY f.name ASC



ведь одинаковые наименования f_name будут учитываться как одно значение и результаты по первому и второму запросу будут разными...
как быть в таком случае?
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38236483
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Amateur7как быть в таком случае?
Не путать соленое и красное.
А пойти поизучать теорию работы с множествами.
А не придумывать ее самому.
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38236500
BlackRaider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Amateur7SELECT DISTINCT f.name as f_name,
f.address as f_address,
f.business as f_business,
f.web as f_web,
f.phone as f_phone,
p.name as p_name
FROM Firm f
left join Price p on p.id_service=f.id_service AND p.id_city=f.id_city AND p.id_firm=f.id_firm
WHERE p.include='1' ORDER BY f.name ASC

[/src]

Подскажите почему они отображаются результатах, тогда как есть SELECT DISTINCT f.name as f_name
в корне не верно, нет SELECT DISTINCT f.name as f_name а есть:
DISTINCT f.name as f_name,
f.address as f_address,
f.business as f_business,
f.web as f_web,
f.phone as f_phone,
p.name as p_name

Т.е. DISTINCT применяется ко всем полям select'a а не к полю которое идет после DISTINCT, так понятнее?
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38236507
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Amateur7как быть в таком случае?выполнить, наконец-то рекомендации
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38236522
BlackRaider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Amateur7
ведь одинаковые наименования f_name будут учитываться как одно значение и результаты по первому и второму запросу будут разными...
как быть в таком случае?
ясный перец что разные, запросы то разные.

2-ой похоже вообще ничего не вернет. (или я ошибаюсь!?)
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38236530
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Amateur7ведь одинаковые наименования f_name будут учитываться как одно значение и результаты по первому и второму запросу будут разными...
как быть в таком случае?

вы до сих пор не обозначили нужный вам результат.
напишите пример исходных данных, результат для них и комментарий, почему именно так должно получиться
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38236535
Amateur7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlackRaider,

реально ошибаешься, проблема том, что при проверке NOT IN вернутся уникальные f.name, что приедет к потере данных при выборке, т.к. в таблице несколько строк с одинаковыми f.name

придется посидеть подумать...
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38236538
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор топика, у вас системная ошибка. Вы мнесто того, чтобы понять ЧТО вам нужно, сразу решили КАК вы это будете делать. И эту парадигму пытаетесь навязать нам.

Вам надо сначала упорядочить в голове:
- что вы имеете
- что именно вы хотите буквально

То есть надо четко осозновать КАЖДОЕ слово в вашем хочу.

После этого прочитать основы составления запросов, и попробовать решить свою простую задачу.
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38236541
Amateur7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shakill,

вопрос - как исключить потерю строк с одинаковыми f.name при постраничной выборке.
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38236549
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что такое ПОСТРАНИЧНАЯ ВЫБОРКА?
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38236554
BlackRaider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Amateur7,
автор проблема том, что при проверке NOT IN вернутся уникальные f.name, что приедет к потере данных при выборке, т.к. в таблице несколько строк с одинаковыми f.name переведи!
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38236557
BlackRaider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторпри постраничной выборке. и это тоже переведи.
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38236559
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Amateur7 !
Вообще желательно сначала прочитать Рекомендации по оформлению сообщений в форуме ... Особенно пункт 6.
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38236565
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Amateur7Shakill,

вопрос - как исключить потерю строк с одинаковыми f.name при постраничной выборке.
внезапно!
еще раз: покажите желаемый результат на примере данных. с комментариями.
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38236566
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть предполажение, что автор сам не понимает какая у него структура данных, и что ему нужно. Это основная проблема,а не то, как работает "дистинкт" и "(нот) ин"
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38236573
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
* предположение
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38236643
BlackRaider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Amateur7Shakill,

вопрос - как исключить потерю строк с одинаковыми f.name.


из 1 поста авторчтобы выводились только уникальные значения f_name

Что то я вообще уже не вкурю что надо автору
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38237198
Amateur7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CammomileЕсть предполажение, что автор сам не понимает какая у него структура данных, и что ему нужно. Это основная проблема,а не то, как работает "дистинкт" и "(нот) ин"

вы не правы, я не стал бы спрашивать если бы сам не знал, что нужно.
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38237202
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я так понял примеров данных мы не дождемся
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38237203
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Amateur7я не стал бы спрашивать если бы сам не знал, что нужно.
А зачем справшивать, если вы знаете, что вам нужно ?
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38237206
BlackRaider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Amateur7
вы не правы, я не стал бы спрашивать если бы сам не знал, что нужно.

нас более внятно просветите?
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38237219
Amateur7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОК, поясню подробнее.
Ввиду того, что строки уникальны(если брать се поля, а не только f_name), изменилось условие задачи.


1) запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT 
DISTINCT 
f.id_service as f_id_service,
 f.id_city as f_id_city, 
f.name as f_name, 
f.address as f_address, 
f.business as f_business, 
f.web as f_web, 
f.phone as f_phone, 
f.id_firm as f_id_firm, 
p.name as p_name 
FROM Firm f left join Price p on p.id_service=f.id_service AND p.id_city=f.id_city AND p.id_firm=f.id_firm


выводит таблицу со след данными:



2) для выборки по 20 строк, для получения строк 21-40 используется запрос:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
SELECT 
DISTINCT TOP 20 
f.id_service as f_id_service,
 f.id_city as f_id_city, 
f.name as f_name, 
f.address as f_address, 
f.business as f_business, 
f.web as f_web, 
f.phone as f_phone, 
f.id_firm as f_id_firm, 
p.name as p_name 
FROM Firm f left join Price p on p.id_service=f.id_service AND p.id_city=f.id_city AND p.id_firm=f.id_firm 

WHERE 

f.name 
NOT IN (
SELECT DISTINCT TOP 20 
f.name FROM Firm f 
left join Price p on p.id_service=f.id_service AND p.id_city=f.id_city AND p.id_firm=f.id_firm 
WHERE p.id_city='73041' AND p.include='1' AND p.blocked='0' AND f.blocked='0' AND p.id_group='44' AND p.id_subgroup='266' 
ORDER BY f.name ASC
) 
AND p.id_firm=f.id_firm AND p.id_city='73041' AND p.include='1' AND p.blocked='0' 
AND f.blocked='0' AND p.id_group='44' AND p.id_subgroup='266'
ORDER BY f.name ASC



как видно из 2-го запроса, используется проверка на
Код: sql
1.
f.name


Однако, если посмотреть на скриншот, мы видим, что в столбце
Код: sql
1.
f_name

есть несколько одинаковых значений, из чего следует, что из всех строк с одинаковыми значениями
Код: sql
1.
f.name

при втором запросе, а именно в части второго запроса:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
WHERE 

f.name 
NOT IN (
SELECT DISTINCT TOP 20 
f.name FROM Firm f 
left join Price p on p.id_service=f.id_service AND p.id_city=f.id_city AND p.id_firm=f.id_firm 
WHERE p.id_city='73041' AND p.include='1' AND p.blocked='0' AND f.blocked='0' AND p.id_group='44' AND p.id_subgroup='266' 
ORDER BY f.name ASC
) 



будут выбираться только уникальные значения f.name, что в конечном результате приведет к потере строк, т.к. в таблице есть строки с одинаковыми f.name, но в целом строка уникальна(при учете всех столбцов).

На этот раз вроде бы все понятно объяснил, если есть какие-либо вопросы, постараюсь ответить.
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38237223
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Amateur7 На этот раз вроде бы все понятно объяснил
Если сто раз повторить "халва", то во рту слаще не станет.

Amateur7 если есть какие-либо вопросы, постараюсь ответить.
Не надо постить сто раз запрос, который выдает ненужный вам результат
Выполните пунтк 4 и 6, о чем вас просят уже давно.
...
Рейтинг: 0 / 0
Проблема с выборкой уникальных значений
    #38237225
BlackRaider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так вам надо просто выборку по 20 строк сделать чтоль?
те. с 1 по 20 дальше с 21 по 40 и т.д.?
правильно понял?
...
Рейтинг: 0 / 0
25 сообщений из 61, страница 2 из 3
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема с выборкой уникальных значений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]