Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2010, 01:03   #1
MSD
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 85
По умолчанию Сортировка по повторениям

Добрый вечер. Подскажите пожалуйста можно ли как нибудь сделать следующее. Есть таблица, в ней четыре столбца, (Имя, Фамилия, адрес, Товар). строк много, и они постоянно повторяются, делаю запрос и использую group by для группировки, получается что все повторения исчезают но хотелось бы чтобы сортировка при использовании group by была по колличеству повторений строк в таблице.... Можно ли это как нибудь сделать? Спасибо. БД Access.
MSD вне форума Ответить с цитированием
Старый 15.11.2010, 01:16   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

GROUP BY
Группирует строки. Однако отображаемый результат может не соответствовать порядку группирования.
Могут быть использованы только выбранные столбцы или выражения; должно быть использовано выражение для каждого выбранного столбца.

ORDER BY
Сортирует полученные результаты.
Могут быть использованы любые столбцы (даже не выбранные в предложении SELECT)
mihali4 вне форума Ответить с цитированием
Старый 15.11.2010, 17:52   #3
MSD
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 85
По умолчанию

Спасибо, за подсказку, но как их совместить? Вот небольшая таблица.... и по колличеству повторений должно остаться так:
1. Иванов Петр Сергеевич
2. Петров Иван Иванович
3. Павлов Александр Петрович
Изображения
Тип файла: jpg Table.JPG (24.4 Кб, 60 просмотров)
MSD вне форума Ответить с цитированием
Старый 15.11.2010, 18:31   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

В идеале запрос должен выгладеть так...
Создаем поле с идентификатором клиента (например, id_klient)
Запрос:
Код:
select distinct id_klient from <table> order by fio, name, last_name
_SERGEYX_ вне форума Ответить с цитированием
Старый 15.11.2010, 18:46   #5
Dimasw
Пользователь
 
Регистрация: 12.09.2010
Сообщений: 69
По умолчанию

Код:
SELECT COUNT(*) AS quantity,fam,name,otch FROM itog GROUP BY fam,name,otch ORDER BY quantity
SELECT BEST FROM LIFE
Dimasw вне форума Ответить с цитированием
Старый 15.11.2010, 20:59   #6
MSD
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 85
По умолчанию

Цитата:
Сообщение от Dimasw Посмотреть сообщение
Код:
SELECT COUNT(*) AS quantity,fam,name,otch FROM itog GROUP BY fam,name,otch ORDER BY quantity
пишет ошибку.... что может быть?
Изображения
Тип файла: jpg Error.JPG (15.3 Кб, 61 просмотров)
MSD вне форума Ответить с цитированием
Старый 15.11.2010, 21:01   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Они (GROUP BY и ORDER BY) применяются только по одному
mihali4 вне форума Ответить с цитированием
Старый 15.11.2010, 21:28   #8
MSD
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 85
По умолчанию

хм.... значит поможет только поле с идентификатором клиента? Больше ни как? (
MSD вне форума Ответить с цитированием
Старый 16.11.2010, 09:50   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Они (GROUP BY и ORDER BY) применяются только по одному
с чего это вдруг? главное, чтобы поля (или выражения), по которым идёт группировка и сортировка, были доступны...

MSD
запрос от Dimasw правильный. просто надо его чуток подкорректировать

вот вам варианты. пробуйте
вариант 1.
Код:
SELECT COUNT(*) AS quantity,fam,name,otch FROM itog GROUP BY fam,name,otch ORDER BY 1 desc
вариант 2 (вложенный запрос)
Код:
select aa.* from (SELECT COUNT(*) AS quantity,fam,name,otch FROM itog GROUP BY fam,name,otch) aa ORDER BY quantity desc
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.11.2010, 17:55   #10
MSD
Пользователь
 
Регистрация: 23.03.2009
Сообщений: 85
По умолчанию

Всем спасибо!!! Получилось, тему можно закрывать, только единственное что я не понял в чем фишка строчки 'ORDER BY 1 desc' что за еденица?
MSD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка Шелла и Шейкер-сортировка AleksandrMakarov Паскаль, Turbo Pascal, PascalABC.NET 11 11.03.2012 12:18
паскаль,одномерный массив,сортировка вставка,сортировка убывания,от максимального до конца немозг Помощь студентам 11 06.02.2010 21:57
Сортировка методом линейного выбора и "быстрая" сортировка Карол Помощь студентам 4 27.09.2009 19:52
Сортировка файлов в Explorer vs сортировка в Delphi mutabor Общие вопросы Delphi 11 04.09.2009 14:32