MSSQL vs MYSQL GROUP BY
Problem:
Kod MySql-a koristeći GROUP BY funkciju možemo selektirati neka dodatna polja uz ono polje po kojem grupiramo.
npr.
SELECT ime, prezime, grad FROM tbl_adresar GROUP BY grad
Dobit ćemo rezultate grupirane po polju grad, ali i jedno od imena i prezimena koje stoje uz neki od tih rezultata.
Ako isto pokušamo napraviti u MSSQL dobit ćemo ovakav error:
Column 'tbl_adresar.ime' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Ako bi query preradili na gore sugerirani način:
SELECT ime, prezime, grad FROM tbl_adresar GROUP BY grad, ime, prezime
Nebi dobili grešku, ali ni rezultat kakav očekujemo jer nas ne zanima grupiranje po imenu nego samo po gradu.
Rješenje:
Upotreba neke od MSSQL aggregate funkcije kod polja koja nisu grupirana.
min() bi možda moglo biti dobro rješenje.
SELECT min(ime), min( prezime), grad FROM tbl_adresar GROUP BY grad
Rezultat je sličan rezultatu dobivenom kod MySQL-a.
Grupirano po gradu, ali ispisuje i jedno ime i prezime koje u navedenu grupu pripada.