Как найти дубликаты строк, в колонках которых содержатся значения null?
Как найти дубликаты строк, в колонках которых содержатся значения null?
Таблица:
Дублями считаются случаи:
Т. е дублями являются строки:
3-4, 5-6, 7-8, 9-10, 11-12.
Строки 1-2 - не дубли.
Структура таблицы
Структура таблицы
create table transport ( id serial, enginenumber varchar(10), carcassnumber varchar(10) ); insert into transport(enginenumber, carcassnumber) values('A', 'B'); insert into transport(enginenumber, carcassnumber) values('A', 'C'); insert into transport(enginenumber, carcassnumber) values('A', 'B'); insert into transport(enginenumber, carcassnumber) values('A', 'B'); insert into transport(enginenumber, carcassnumber) values('A', 'B'); insert into transport(enginenumber, carcassnumber) values('A', null); insert into transport(enginenumber, carcassnumber) values('A', 'B'); insert into transport(enginenumber, carcassnumber) values(null, 'B'); insert into transport(enginenumber, carcassnumber) values('A', null); insert into transport(enginenumber, carcassnumber) values('A', null); insert into transport(enginenumber, carcassnumber) values(null, 'B'); insert into transport(enginenumber, carcassnumber) values(null, 'B'); |
create table transport ( id serial, enginenumber varchar(10), carcassnumber varchar(10) ); insert into transport(enginenumber, carcassnumber) values('A', 'B'); insert into transport(enginenumber, carcassnumber) values('A', 'C'); insert into transport(enginenumber, carcassnumber) values('A', 'B'); insert into transport(enginenumber, carcassnumber) values('A', 'B'); insert into transport(enginenumber, carcassnumber) values('A', 'B'); insert into transport(enginenumber, carcassnumber) values('A', null); insert into transport(enginenumber, carcassnumber) values('A', 'B'); insert into transport(enginenumber, carcassnumber) values(null, 'B'); insert into transport(enginenumber, carcassnumber) values('A', null); insert into transport(enginenumber, carcassnumber) values('A', null); insert into transport(enginenumber, carcassnumber) values(null, 'B'); insert into transport(enginenumber, carcassnumber) values(null, 'B');
Дополнительно:
1) Покажите требуемый ответ для именно этих данных.
2) Исправьте ссылку на fiddle.
Нужный результат на скрине:
2) Исправил.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос



Для нахождения дубликатов строк, в колонках которых содержатся значения null, можно воспользоваться SQL запросом. В данном примере предположим, что у нас есть таблица "users" с колонками "id", "name" и "email", где "email" может содержать значение null.
Для начала, мы можем использовать следующий SQL запрос для поиска дубликатов строк, в колонках которых содержатся значения null:
SELECT name, email, COUNT(*) FROM users WHERE email IS NULL GROUP BY name, email HAVING COUNT(*) > 1;
Этот запрос выберет все строки из таблицы "users", где значение в колонке "email" равно null, сгруппирует их по значениям в колонке "name" и "email", а затем отфильтрует только те строки, у которых количество дубликатов больше одного.
Если вы хотите вывести все дубликаты строк, включая их количество, вам следует использовать следующий SQL запрос:
SELECT name, email, COUNT(*) FROM users GROUP BY name, email HAVING email IS NULL AND COUNT(*) > 1;
Этот запрос вернет все строки из таблицы "users", где значение в колонке "email" равно null, сгруппирует их по значениям в колонке "name" и "email", и отфильтрует только те строки, у которых количество дубликатов больше одного.
Таким образом, используя подобные SQL запросы, вы сможете легко найти дубликаты строк, в колонках которых содержатся значения null в вашей базе данных.