Я считаю, что Group By лучше, потому что нет специальных методов лечения.Это может быть оптимизировано ядром базы данных.Я думаю, что результаты могут зависеть от движка базы данных, который вы используете.Возможно, тот, который вы используете, оптимизирует первый запрос, понимая, что он похож на группу!
Вы можете попробовать команду «объяснить / объяснить план», чтобы увидеть, как механизм вычисляет ваши запросы, но с моим Microsoft SQL ServerВ 2008 году я просто вижу перестановку между 2 операциями («Вычислить скаляр» и «объединить»).
Я пытался выполнить такие запросы к таблице базы данных:
- SQL Server 2k8
- 163000 строк в таблице
- 12 категорий (Valor1 -> Valor12)
результаты совершенно разные:
- Группировка по: 2 секунды
- Случай, когда: 6 секунд!
Так что мой выбор - «Группировать по».Еще одним преимуществом является то, что запрос проще написать!