Как найти дубликаты строк, в колонках которых содержатся значения null?

Ссылка скопирована
1 ответ

Как найти дубликаты строк, в колонках которых содержатся значения null?

Таблица:

Как найти дубликаты строк, в колонках которых содержатся значения 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.

  • 1) Нужно получить все строки, кроме первых двух.
    Нужный результат на скрине:

    Как найти дубликаты строк, в колонках которых содержатся значения null?

    2) Исправил.

  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Дмитрий К. Ответ

    Для нахождения дубликатов строк, в колонках которых содержатся значения 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;

    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;

    SELECT name, email, COUNT(*) FROM users GROUP BY name, email HAVING email IS NULL AND COUNT(*) > 1;

    Этот запрос вернет все строки из таблицы "users", где значение в колонке "email" равно null, сгруппирует их по значениям в колонке "name" и "email", и отфильтрует только те строки, у которых количество дубликатов больше одного.

    Таким образом, используя подобные SQL запросы, вы сможете легко найти дубликаты строк, в колонках которых содержатся значения null в вашей базе данных.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно