Главная SQL Distinct
E-mail Печать PDF

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

Синтаксис SQL SELECT DISTINCT

1
2
SELECT DISTINCT column_name(s)
FROM table_name

Пример SELECT DISTINCT

Есть таблица "Persons":

P_IdLastNameFirstNameAddressCity
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Итак, мы хотим выбрать только разные значения из колонки "City".

Для этого используем такой запрос:

1
SELECT DISTINCT City FROM Persons

Результат запроса:

City
Sandnes
Stavanger

Комментарии

 
+11 #1 Шелест Константин 2010-10-28 22:07 Без повторения кортежей, круто… Цитировать
 
 
0 #2 Сергей С 2011-08-15 12:03 А как одновременно выбрать и P_Id ? Цитировать
 
 
+2 #3 AVK_Alex 2011-08-17 16:00 Цитирую Сергей С:
А как одновременно выбрать и P_Id ?

Думаю
SELECT DISTINCT P_Id, City FROM Persons
Цитировать
 
 
-3 #4 хуес два 2011-10-12 17:19 хуес два Цитировать
 
 
-1 #5 три 2011-10-12 17:45 раз два, тогда сиди и читай мануалы Цитировать
 
 
-1 #6 aperturer 2011-11-30 10:53 Цитирую Сергей С:
А как одновременно выбрать и P_Id ?

SELECT DISTINCT City, P_Id FROM Persons
Цитировать
 
 
+2 #7 Iluha 2011-12-07 14:22 А на самом деле возможно выбрать значения из нескольких столбцов? Цитировать
 
 
+3 #8 SkyMan 2012-01-16 09:53 Цитирую Сергей С:
А как одновременно выбрать и P_Id ?


Это нужно делать при помощи подзапроса. Типа

SELECT P_id, (SELECT DISTINCT City FROM Persons) City
FROM Persons;
Цитировать
 
 
+2 #9 Антон 2012-03-15 06:52 а есть ли запрос, который будет выводить наоборот только одинаковые значения? в данном примере вывел бы
Sandnes
Sandnes
Цитировать
 
 
+1 #10 soft_master 2012-04-18 16:05 Вопрос некорректный, что значит "только одинаковые".
Если все записи таблицы в которых значения City присутствуют больше одного раза, тогда так:

SELECT * FROM Persons
WHERE
City IN
(SELECT City FROM Persons GROUP BY City HAVING COUNT (City) > 1)

Получим:
P_Id LastName FirstName Address City
=======================================================
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes

или только для City, тогда так:

SELECT City FROM Persons
WHERE
City IN
(SELECT City FROM CLIENT GROUP BY City HAVING COUNT (City) > 1)

Получим:
City
=======
Sandnes
Sandnes

Только смысл. Если просто для статистики, тогда лучше так
SELECT City, COUNT(City) FROM Persons GROUP BY City HAVING COUNT (City) > 1)

Получим:
City COUNT
=============
Sandnes 2
Цитировать
 

Авторизация

Nice Ajax Poll

Какое из моих расширений самое лучшее?

Статистика



Реклама