Select + сортировка + количество элементов ответа

DiMA

php.spb.ru
Команда форума
Select + сортировка + количество элементов ответа

Я недавно хотел выполнить нечто такое, но не знал как:

select фамилия,оценка where count(фамилия)>1 order by фамилия

чтобы получить только те строки, где элемены первого столбца встречаются более одного раза. Допустим, есть записи о разных людях (столбец фамилий) и их оценок (второй столбец оценок). Надо получить всех тех, кто имеет более одной оценки. Не зная как правильно, сделал в 2 запроса к базе.

Иванов 4
Петров 5
Иванов 3
Иванов 3
Сидоров 2
Петров 3
Пупкин 1

В данном примере нужно выбрать Иванова и Петрова, т.к. у них более чем одна оценка (разумеется не только 2 фамилии, но и оценки, т.к. таблицу на 5 строк).

Оказывается это можно делать в один запрос:

SELECT фамилия, оценка, count(фамилия) AS превдоним FROM table GROUP BY фамилия HAVING псевдоним > 1

"псевдоним" - любое слово
"table" - название таблицы

вот так...
 

dak

Guest
Select + сортировка + количество элементов отв

А еще при помощи NOT UNIQUE можно!!!
 
Сверху