Duplikat
Czy jest jakaś różnica między GROUP BY i WYRÓŻNIONE
Zostało to już omówione tutaj
Jeśli nadal chcesz słuchać tutaj
Dobrze pogrupuj i rozróżnij ma swój własny użytek.
Distinct służy do filtrowania unikalnych rekordów spośród rekordów spełniających kryteria zapytania.
Klauzula group by służy do grupowania danych, na podstawie których uruchamiane są funkcje agregujące, a dane wyjściowe są zwracane na podstawie kolumn w klauzuli group by. Ma swoje własne ograniczenia, takie jak wszystkie kolumny, które są w zapytaniu wybierającym, oprócz funkcji agregujących, muszą być częścią klauzuli Group by.
Więc nawet jeśli możesz mieć te same dane zwrócone przez differ i group by z klauzulą, lepiej jest użyć different. Zobacz poniższy przykład
select col1,col2,col3,col4,col5,col6,col7,col8,col9 from table group by col1,col2,col3,col4,col5,col6,col7,col8,col9
można zapisać jako
select distinct col1,col2,col3,col4,col5,col6,col7,col8,col9 from table
Ułatwia Ci życie, gdy masz więcej kolumn na liście wyboru. Ale jednocześnie, jeśli chcesz wyświetlić sumę(col10) wraz z powyższymi kolumnami, będziesz musiał użyć Grupuj według. W takim przypadku rozróżnienie nie zadziała.
np.
select col1,col2,col3,col4,col5,col6,col7,col8,col9,sum(col10) from table group by col1,col2,col3,col4,col5,col6,col7,col8,col9
Mam nadzieję, że to pomoże.