SQL: получить список имен из базы данных без двойных вхождений - PullRequest
0 голосов
/ 21 октября 2019

Я делаю свой первый опыт с sql. В настоящее время я работаю над генеалогическим веб-сайтом, которым управляет база данных sql. К тому времени, когда число людей в БД увеличилось, я хочу реализовать короткий путь для перехода к конкретному человеку несколькими щелчками мыши. Поэтому я хочу сначала дать список всех фамилий в базе данных. Sql для этого довольно прост:

SELECT familyname FROM tablewithdata ORDER BY familyname;

Это, очевидно, дает мне такой список:

  • Griffin
  • Griffin
  • Гриффин
  • Миллер
  • Миллер
  • Миллер
  • Санчес
  • Санчес
  • Симпсон
  • Симпсон
  • Симпсон
  • Симпсон ...

Количество фамилий совпадает с числом лиц с таким именем в БД.

Но я хочу, чтобы в базе данных было только одно вхождение каждой фамилии, например:

  • Гриффин
  • Миллер
  • Санчес
  • Симпсон

Я надеюсь, что есть простое решение для моего запроса. Мой поиск в Google привел только к тому, что я могу удалить двойные записи из своей базы данных.

Большое спасибо за вашу помощь !!

Ответы [ 4 ]

1 голос
/ 21 октября 2019

Ключевое слово SQL DISTINCT используется вместе с оператором SELECT для удаления всех дублирующих записей и извлечения только уникальных записей.

SELECT DISTINCT familyname 
FROM tablewithdata 
ORDER BY familyname;

Чтобы удалить дублированные записи из базы данных, выздесь можно использовать концепцию ROW_Number ().

DELETE FROM
(
  SELECT familyname, ROW_NUMBER() OVER(PARTTION BY familyname ORDER BY familyname) 
  RN
  FROM tablewithdata;
) X WHERE RN > 1
1 голос
/ 21 октября 2019

Вы можете использовать Group By:

SELECT familyname FROM tablewithdata GROUP BY familyname ORDER BY familyname
1 голос
/ 21 октября 2019

Используйте select distinct familyname FROM tablewithdata ORDER BY familyname;

Надеюсь, это поможет вам.

0 голосов
/ 21 октября 2019

ВЫБРАТЬ отдельный (фамилия) ИЗ таблицы с данными ЗАКАЗАТЬ по фамилии

. Это должно помочь вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...