Middle
Ako funguje SQL dopyt s úplným súborom polí bez agregačných funkcií a GROUP BY na tých istých poliach?
sobes.tech AI
Odpoveď od AI
Ak v SQL dotaze používate operátor GROUP BY na úplnom súbore polí z výberu, ale nepoužívajú sa agregačné funkcie, výsledok bude ekvivalentný jednoduchému SELECT DISTINCT na týchto rovnakých poliach.
K tomu dochádza, pretože zoskupovanie podľa všetkých polí v skutočnosti rozdeľuje tabuľku na skupiny, z ktorých každá obsahuje unikátnu kombináciu hodnôt týchto polí. Keďže nie sú použité žiadne agregačné funkcie, z každej skupiny sa vezme iba jeden riadok — teda, duplikáty sa odstraňujú.
Príklad:
SELECT col1, col2, col3
FROM table_name
GROUP BY col1, col2, col3;
Táto otázka vráti všetky unikátne kombinácie hodnôt col1, col2 a col3, podobne ako:
SELECT DISTINCT col1, col2, col3
FROM table_name;
Takto slúži GROUP BY bez agregačných funkcií a s úplným súborom polí na odstránenie duplikátov v týchto poliach.