sql >> Databáze >  >> RDS >> Mysql

MySQL – Jaký je rozdíl mezi GROUP BY a DISTINCT?

Duplikát

Je nějaký rozdíl mezi GROUP BY a DISTINCT

Už se to tu probíralo

Pokud si přesto chcete poslechnout zde

Dobře seskupovat a rozlišovat má své vlastní použití.

Distinct se používá k odfiltrování jedinečných záznamů ze záznamů, které splňují kritéria dotazu.

Seskupit podle klauzule se používá k seskupení dat, na základě kterých se spouštějí agregační funkce a výstup je vrácen na základě sloupců ve skupině podle klauzule. Má svá vlastní omezení, například všechny sloupce, které jsou ve výběrovém dotazu kromě agregačních funkcí, musí být součástí skupiny podle klauzule.

Takže i když můžete mít stejná data vrácená odlišnými a seskupenými klauzulemi, je lepší použít odlišná. Viz níže uvedený příklad

select col1,col2,col3,col4,col5,col6,col7,col8,col9 from table group by col1,col2,col3,col4,col5,col6,col7,col8,col9

lze napsat jako

select distinct col1,col2,col3,col4,col5,col6,col7,col8,col9 from table

Usnadňuje vám život, když máte ve výběrovém seznamu více sloupců. Ale zároveň, pokud potřebujete zobrazit sum(col10) spolu s výše uvedenými sloupci, budete muset použít Group By. V takovém případě nebude rozlišení fungovat.

např.

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

Doufám, že to pomůže.



  1. BULK INSERT se sloupcem identity (automatické zvýšení).

  2. Pořadí operací MySQL?

  3. Použití parametrů s připojením Oracle ODBC

  4. Seskupit podle uživatelů a zobrazit nejnovější v MYSQL nefunguje