Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > Вывод повторяющихся записей


Автор: etc 2.11.2007, 16:46
Суть Вывести одинаковые записи.
Дано. Таблица User
Нужно вынести все записи из User.name, данные которых дублируются.
Покапавшись в SQL для чайников и инете пришел к запросу такого вида:

Код

SELECT DISTINCT t.name
FROM [User] AS t
WHERE EXISTS (SELECT * FROM User WHERE t.name = User.name);


Выводит полностью всех, покапавшись дальше, получилось:

Код

SELECT DISTINCT t.name
FROM [User] AS t
WHERE EXISTS (SELECT * FROM User WHERE t.name = User.name AND  user.firm <>t.firm);


Работает, но.. Если запись в столбце запись firm одинаковая, то он записи эти уже не выводит. 
Ребзя, чес слово к концу пятницы уже мозг отказывается работать, покажите как пнуть надо. 

Спасибо!

Автор: ivashkanet 2.11.2007, 16:52
Код

SELECT name
FROM [User]
group by name
having count(1)>1

Автор: bopoha 2.11.2007, 17:18
ivashkanet, 
Почему в count(1) именно 1. Может *?

Автор: ivashkanet 2.11.2007, 17:27
чтобы складывать единички а не что-нить другое smile 

P.S. Count выполняется для всех элементов входящих в группу. Т.е. если их 5 то будет просуммировано 5 единиц и тыды

Добавлено через 54 секунды
Цитата(bopoha @  2.11.2007,  17:18 Найти цитируемый пост)
Может *

Хочешь -- складывай звездчки, я люблю складывать единички  smile 

Автор: etc 2.11.2007, 17:31
ivashkanet, респект и уважуха. не думал что до окончания пятницы сделаю это. Всё верно вышло.
Зачем тогда мне SQL для чайникоф мозги пудрил.....

Автор: ivashkanet 2.11.2007, 17:38
etc, не за что smile

P.S. Просто где-то 2-3 месяца назад я тоже чистил повторяющиеся записи smile

Автор: bopoha 2.11.2007, 18:32
ivashkanet, 
Сount ничего не складывает, а считает количество записей в группе. Входным параметром является имя поля. В этом случае, если поле содержит NULL, то в количество оно не попадает. В этом случае * означает считать количество всех записей.
Что будет если подставить 1, я не знаю, что произойдет. Посчитается количество записей по 1-у полю?

Автор: ivashkanet 2.11.2007, 18:50
bopoha, да, то я глюканул (перепутал с суммой). Возможно Count(1) считает по первому столбцу smile 
Поэтому и те спасибо. За наводку...

P.S. И кто меня научил, что count(1) лучше  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)