Sobes.tech
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.