Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тупление над GROUP BY 
:(
    Опции темы
Orient
Дата 5.7.2007, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.7.2004

Репутация: нет
Всего: нет



Всем привет!

Есть у меня табличка  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

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

Спасибо

Это сообщение отредактировал(а) Orient - 5.7.2007, 09:14
PM MAIL   Вверх
Burrr
Дата 5.7.2007, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 4.9.2005

Репутация: нет
Всего: 20



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



--------------------
PM MAIL ICQ   Вверх
Orient
Дата 5.7.2007, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.7.2004

Репутация: нет
Всего: нет



Похоже я что-то недопонимаю. Что тогда вкладывается в понятие группировка?
PM MAIL   Вверх
Burrr
Дата 5.7.2007, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 4.9.2005

Репутация: нет
Всего: 20



В случае GROUP BY происходит объединение строк по уникальной записи для заданного поля.

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

Это сообщение отредактировал(а) Burrr - 5.7.2007, 10:46


--------------------
PM MAIL ICQ   Вверх
Orient
Дата 5.7.2007, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.7.2004

Репутация: нет
Всего: нет



угу.. уже обчитался по инету
PM MAIL   Вверх
Samotnik
Дата 5.7.2007, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: нет
Всего: 191



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 


Это сообщение отредактировал(а) Samotnik - 5.7.2007, 23:57
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0659 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.