|
|
|
| Вопрос в следующем:
путём склеивания строк двух таблиц (UNION ALL) формируется итоговая таблица, затем применяется группировка по определённому полю, в итоге получаю например 10 строк, при добавлении в группировку ещё одного поля количество строк увеличивается до 12
т.е. запрос выглядит примерно так:
select column1, column2, sum(column3)
from (
select ...
union all
select...
)
group by column1, column2
без группировки, только с использованием UNION ALL запрос выдаёт 10 строк, при использовании вышеуказанного запроса с группировкой получается 12 строк, как только убираю группировку по column2 кол-во результирующих строк опять становится равным 10
я не могу понять как работает конструкция group by и почему происходит увеличение кол-ва строк? пусть даже если в column2 встречаются разные значения, ведь предыдущий столбец определил группы, а следующий оперирует уже в пределах первой группировки, или я не правильно понимаю? | |
|
|
|
|
|
|
|
для: ronin80
(28.10.2009 в 19:43)
| | Группы определяет не один столбец, а сочетание значений во всех столбцах. | |
|
|
|
|
|
|
|
для: Trianon
(28.10.2009 в 20:04)
| | т.е. получается результат будет определять совокупность полей группировки а не последовательность их расстановки в конструкции group by? | |
|
|
|
|
|
|
|
для: ronin80
(29.10.2009 в 06:05)
| | а Вы пробовали менять местами column1 и column2? | |
|
|
|
|
|
|
|
для: Valick
(29.10.2009 в 09:33)
| | от перестановки кол-во строк в результирущей таблице не меняется, только при удалении column2 из группировки меняется кол-во строк
в принципе разобрался в чём дело, получилось что в column2 есть разные значения и соответственно результат разбивается на группы по указанным полям
я думаю я немного неправильно сформулировал вопрос, получается что при группировке по column1 из n-го количества строк получалось 10 строк, при группировке по column1, column2 - 12 строк, что в принципе логично, ведь значения column2 различаются при одинаковых значениях column1, соответственно количество строк увеличивается | |
|
|
|
|
|
|
|
для: ronin80
(29.10.2009 в 06:05)
| | последовательность перечисления выражений в GROUP BY не влияет ни на что.
Ну может быть, кроме оптимизации... | |
|
|
|