Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 1 / 2
Регистрация: 03.06.2015
Сообщений: 103
MySQL

Получить записи с одинаковым значением в определенном поле

02.12.2016, 09:35. Показов 1444. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть таблица сотрудников, там есть поле табель, каким запросом можно получить все записи где значение в поле табель не уникально? результат должен быть примерно таким:
ф.и.о. | таб№ | отдел
---------------------------------
сотр1 | 0323 | отд1
---------------------------------
сотр1 | 0323 | отд2
---------------------------------
сотр2 | 3424 | отд1
---------------------------------
сотр2 | 3424 | отд4
---------------------------------
если запросоми так нельзя, то может эксель способен на такое
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.12.2016, 09:35
Ответы с готовыми решениями:

Проверка записи с одинаковым значением
Подскажите, как при добавление новой записи, происходила проверка в базе, например по имени, и если существует такое имя, то выводило бы,...

вывести все записи с одинаковым значением
Добрый вечер. Помогите пожалуйста составить запрос. Имеется таблица с несколькими полями. В одном значения повторяются. Нужно вывести все...

Записи. Поиск записей с одинаковым значением по двум полям
нужно сделать процедурку которая будет искать записи с одинаковым значением по двум полям. примерно как это будет выглядеть?

18
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
02.12.2016, 09:58
SQL
1
SELECT f1, f2, f3, COUNT(f1) FROM TABLE  WHERE COUNT(f1)>1 GROUP BY  1,2,3
1
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
02.12.2016, 10:03
Цитата Сообщение от krapotkin Посмотреть сообщение
WHERE COUNT(f1)>1
Не пройдет. HAVING нужен.
0
1 / 1 / 2
Регистрация: 03.06.2015
Сообщений: 103
02.12.2016, 10:04  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
GROUP BY *1,2,3
как это работает?
и что с ней что без выдает ошибку
[Err] 1111 - Invalid use of group function
вот весь запрос
SQL
1
SELECT Табель, статус,  COUNT(Табель) FROM `sotrudniki`  WHERE COUNT(Табель)>1 GROUP BY *1,2,3
0
5980 / 4555 / 1095
Регистрация: 29.08.2013
Сообщений: 28,185
Записей в блоге: 3
02.12.2016, 10:15
SQL
1
2
3
4
SELECT Табель, статус,  COUNT(Табель) 
FROM `sotrudniki`  
HAVING COUNT(Табель)>1 
GROUP BY 1,2,3
1
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
02.12.2016, 10:29
сорри. да, конечно having
0
5980 / 4555 / 1095
Регистрация: 29.08.2013
Сообщений: 28,185
Записей в блоге: 3
02.12.2016, 10:33
и группировать по 3 не нужно вроде
0
1 / 1 / 2
Регистрация: 03.06.2015
Сообщений: 103
02.12.2016, 10:42  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
SQL
1
2
3
SELECT Табель, статус, *COUNT(Табель) 
FROM `sotrudniki` *
HAVING COUNT(Табель)>1
тут он выдает только первую запись из всей таблицы с полями табель статус и количество записей
запрос я понял так:
показать поля табель, статус, количество записей с табелем в таблице sotrudniki где количество табелей больше одного
0
5980 / 4555 / 1095
Регистрация: 29.08.2013
Сообщений: 28,185
Записей в блоге: 3
02.12.2016, 11:20
Цитата Сообщение от ptytb1 Посмотреть сообщение
тут он выдает только первую запись из всей таблицы с полями табель статус и количество записей
не первую

сначала идет группировка по полям 1 и 2 и считается число (Табель)
потом выводится где число (Табель) >1
0
1 / 1 / 2
Регистрация: 03.06.2015
Сообщений: 103
02.12.2016, 11:34  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
не первую
первую, я проверил... добавил еще одну строку с id меньше чем был до этого и выполнив запрос я получил эту строку
0
5980 / 4555 / 1095
Регистрация: 29.08.2013
Сообщений: 28,185
Записей в блоге: 3
02.12.2016, 11:39
блин

выдает ВСЕ строки где COUNT(Табель)>1
если у вас такая одна - то выдаст одну
0
1 / 1 / 2
Регистрация: 03.06.2015
Сообщений: 103
02.12.2016, 11:41  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
где COUNT(Табель)>1
это две строки с одинаковым табельным?
если да, то нет, там 6000 строк и 160 примерно повторных
0
5980 / 4555 / 1095
Регистрация: 29.08.2013
Сообщений: 28,185
Записей в блоге: 3
02.12.2016, 11:44
Табель, статус
1 1
2 1
1 1
2 1
3 1

получится
Табель, статус, COUNT(Табель)
1 1 2
2 1 2
3 1 1

после HAVING COUNT(Табель) >1

останется 2 строки
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
02.12.2016, 11:45
Цитата Сообщение от ptytb1 Посмотреть сообщение
160 примерно повторных
Так где в твоем варианте GROUP BY?
0
1 / 1 / 2
Регистрация: 03.06.2015
Сообщений: 103
02.12.2016, 11:59  [ТС]
Цитата Сообщение от Grossmeister Посмотреть сообщение
Так где в твоем варианте GROUP BY?
с ним ошибка
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY 1,2,3' at line 4
0
1 / 1 / 2
Регистрация: 03.06.2015
Сообщений: 103
02.12.2016, 12:06  [ТС]

вот результат запроса
0
1 / 1 / 2
Регистрация: 03.06.2015
Сообщений: 103
02.12.2016, 12:29  [ТС]
Оператор SQL COUNT() — функция возвращающая количество записей (строк) таблицы.
в общем count возвращает количество не повторяющиеся записи, а количество всех записей

Добавлено через 7 минут
MySQL
1
2
3
4
SELECT Табель, статус, COUNT(Табель) AS cnt 
FROM `sotrudniki`  
GROUP BY Табель
HAVING COUNT(Табель)>1
ВОООО!!!!! РАБОТАЕТ!!!!! Всем большое спасибо!!
0
5980 / 4555 / 1095
Регистрация: 29.08.2013
Сообщений: 28,185
Записей в блоге: 3
02.12.2016, 12:31
Цитата Сообщение от ptytb1 Посмотреть сообщение
GROUP BY Табель
а статус сгруппировать?
1
1 / 1 / 2
Регистрация: 03.06.2015
Сообщений: 103
02.12.2016, 12:47  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
а статус сгруппировать?
точно! пропустил, я то думаю что то их не 160, а штук 10
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.12.2016, 12:47
Помогаю со студенческими работами здесь

В БД имеются записи с одинаковым значением, как вывести одну
Доброго времени. Прошу помощи. Вот такой вот вопрос возник Имеется БД с повторяющимися записями, количество повторяющихся записей...

Дублирование записи в определенном поле при добавлении новой записи
Добрый день. Подскажите пожалуйста, есть у меня запрос на создание таблицы где в созданной таблице в первом поле проставляется значение 2....

Проверка наличия записи с определенным значением в поле рекордсета
Здравствуйте. Возникла такая задача: Нужно проверить, есть ли в поле ADO-рекордсета запись с заданным значением? и чтобы...

Получить в селекте минимальное значение и индекс записи с минимальным значением
Добрый день. Мне необходимо получить в селекте минимальное значение цены и индекс записи с этим минимальным значением цены. С...

Как получить все записи с максимальным значением одного из полей?
Имеется , условно говоря, база документов со всеми их атрибутами. В базе могут находиться одинаковые документы, различающиеся только...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru