Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Тупление над GROUP BY


Автор: Orient 5.7.2007, 09:10
Всем привет!

Есть у меня табличка  Datas:

ID  Town      Data

1    Moscow  Data 1
2    Minsk      Data 2
3    Moscow  Data 2


Так вот, когда выпаюсь сделать вот такой запрос:

SELECT *
FROM `Datas`
GROUP BY `Town`

Результат у меня почему-то получается отфильрованным:
1    Moscow  Data 1
2    Minsk      Data 2

Ежели я напишу 
SELECT *
FROM `Datas`
GROUP BY `Town`, `Key`

То результат будет таким каким я и хотел бы его видеть:
2    Minsk      Data 2
1    Moscow  Data 1
3    Moscow  Data 2

Походу у меня проблемы с матчастью. Объясните неразумному почему мой первый запрос становится фильтрованным?

Спасибо

Автор: Burrr 5.7.2007, 10:16
Orient, вообще-то GROUP BY группирует запросы и первый результат является на 100% верным.
Судя по контексту тебе нужен ORDER BY (сортировка, упорядочивание):
Код
SELECT * FROM `Datas` ORDER BY `Town`

Автор: Orient 5.7.2007, 10:29
Похоже я что-то недопонимаю. Что тогда вкладывается в понятие группировка?

Автор: Burrr 5.7.2007, 10:45
В случае GROUP BY происходит объединение строк по уникальной записи для заданного поля.

А вообще за тем что есть ORDER BY & GROUP BY лучше сходить в мануал.

Автор: Orient 5.7.2007, 12:24
угу.. уже обчитался по инету

Автор: Samotnik 5.7.2007, 23:56
Group BY обычно применяется с функциями агрегирования. К примеру с SUM
Таблица   Tabel :
Код

Company     Amount
IBM               2000
AMD              5000
IBM              7000

К примеру пишим:
Код

SELECT Company,  SUM(Amount) FROM Tabel

Получим:
Код

Company     Amount
IBM              14000
AMD             14000
IBM              14000 

И получается  безсмыслицца!!!!
А если юзать GROUP BY    
Код

SELECT Company,  SUM(Amount) FROM Tabel  GROUP BY  Company

То получим:
Код

Company      Amount
IBM                  9000
AMD                  5000

Примерно такой смысл Group BY
А Order BY применяется для сортировки и упорядочевания результатов звпроса!!!
Так что матрите, что нужно то и используйте!!!     smile 

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