2017-01-24 4 views
1

Я очень новичок в sql и базе данных. Сталкивался с этим запросом:Объяснить группу по запросу

SELECT cast(min(dt_from) as varchar(12))+cast(max(dt_to) as varchar (12)) 
FROM view1 
GROUP BY dt_from, dt_to 

Когда я исключить группу, я получаю только одну запись, но с группой по я получаю 40, Может кто-то пожалуйста, объясните логику этого?

Спасибо.

ответ

2

Существует 40 различных комбинаций dt_from и dt_to. Вы говорите, что SQL обрабатывает каждую из этих комбинаций как нечто уникальное для отображения.

+1

это имеет смысл, спасибо! – puzeledbysql

+0

Нет проблем. Не стесняйтесь принимать в качестве ответа. – Forklift

+1

Откидной стороной является то, что без группы вы получаете одну строку, потому что она говорит, чтобы найти минимальное dt_from и максимальное dt_to и просто объединить их. И вы получите один ряд. GroupBy означает, что вы получаете одну строку для каждой уникальной комбинации dt_from и dt_to. – pmbAustin

Смежные вопросы