Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Выборка уникальных записей из таблицы.


Автор: Resident 18.5.2008, 19:19
Есть таблица вида:

|text|text2|
123    123
123    132
123    123

Нужно выбрать text и text2 при условии того, что значения text должны быть уникальными.

запрос:

Код

select distinct(`text`), `text2` from `table`;


Дает результат:

|text|text2|
123    123
123    132

Т.е. значения text не уникальны.

И еще нужно подсчитать кол-во повторов каждой записи. т.е. на выходе получить такой результат:
|text|count|
123    3

и т.д. если в поле text еще будут записи:
|text|
124
125
125
126

то результат должен быть таким:

|text|count|
123    3
124    1
125    2
126    1

Автор: Данкинг 18.5.2008, 20:09
Насчёт числа повторов - select distinct pole, count(*) - это?

Автор: Resident 26.5.2008, 16:58
У меня запрос

Код

SELECT col, count(*) FROM table;


вообще выдает: ERROR 1140 (42000): Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

Автор: skyboy 26.5.2008, 17:29
сия ошибка говорит: "как можно считать количество для групп, если группировка не задана?!".
что такое "сгруппировать по признаку и подсчитать количество в каждой группе"? сначала сгруппировать по признаку(по значениею поля col). вот у тебя где группировка указана?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)