MySQL GROUP BY (Română)

rezumat: în acest tutorial, veți învăța cum să utilizați MySQL GROUP BY pentru a grupa rândurile în subgrupuri pe baza valorilor coloanelor sau expresiilor.

Introducere în MySQL GROUP BY clauza

GROUP BY clauza grupează un set de rânduri într-un set de rânduri sumare după valorile coloanelor sau expresiilor. Clauza GROUP BY returnează un rând pentru fiecare grup. Cu alte cuvinte, reduce numărul de rânduri din setul de rezultate.,

folosiți adesea GROUP BY clauza cu funcții agregate, cum ar fi SUM, AVG, MAX, MIN și COUNT. Funcția agregată care apare în clauza SELECT oferă informații despre fiecare grup.

GROUP BY clauză este o clauză opțională de SELECT declarație., Următoarea diagramă ilustrează GROUP BY clauza sintaxa:

GROUP BY clauză trebuie să apară după FROM și WHERE clauze. Urmând cuvintele cheie GROUP BY este o listă de coloane sau expresii separate prin virgulă pe care doriți să le utilizați ca criterii pentru a grupa rânduri.,

MySQL evaluates the GROUP BY clause after the FROM, WHERE and SELECT clauses and before the HAVING , ORDER BY and LIMIT clauses:

MySQL GROUP BY examples

Let’s take some example of using the GROUP BY clause.,

A) grup MySQL simplu prin exemplu

Să aruncăm o privire la tabelul orders din Baza de date de probă.,

să Presupunem că doriți să grup de valori de ordine de stare în subgrupuri, utilizați GROUP BY clauza cu status coloana ca următoarea interogare:

Code language: SQL (Structured Query Language) (sql)

Încercați să-L Afară

după Cum puteți vedea, GROUP BY clauza de returnare unic aparițiile status valori., Acesta funcționează ca DISTINCT operator așa cum se arată în următoarea interogare:

Code language: SQL (Structured Query Language) (sql)

Încercați să-L Afară

B) Folosind MySQL GRUP DE cu funcții agregate

funcții agregate permite pentru a efectua calculul de un set de rânduri și se întoarce o singură valoare. Clauza GROUP BY este adesea folosită cu o funcție agregată pentru a efectua calculul și a returna o singură valoare pentru fiecare subgrup.,

De exemplu, dacă vrei să știi numărul de comenzi în fiecare stare, puteți folosi COUNT funcția GROUP BY clauza după cum urmează:

Code language: SQL (Structured Query Language) (sql)

Încercați să-L Afară

a se Vedea următoarele orders și orderdetails masă.,

Pentru a obține suma totală a tuturor comenzilor de stare, alăturați-vă orders tabel cu orderdetails masă și de a folosi SUM funcție pentru a calcula suma totală. Vezi următoarea interogare:

Code language: SQL (Structured Query Language) (sql)

Încercați să-L Afară

în mod Similar, următoarea interogare returnează numerele de ordine și valoarea totală a fiecărui ordin.,

Code language: SQL (Structured Query Language) (sql)

Încercați să-L Afară

C) MySQL GRUP DE exprimare exemplu

În plus față de coloane, puteți grup de rânduri de expresii. Următoarea interogare primește vânzările totale pentru fiecare an.

Încercați să-L Afară

În acest exemplu, am utilizat YEAR funcția de a extrage datele din anul de la data comenzii ( orderDate)., Am inclus doar comenzi cu shipped status în vânzările totale. Rețineți că expresia care apare în clauza SELECT trebuie să fie aceeași cu cea din clauza GROUP BY.

D) Folosind MySQL GRUP DE cu AVÂND clauza de exemplu,

Pentru a filtra grupurile returnate de către GROUP BY clauză, utilizați un HAVING clauză. Următoarea interogare folosește clauza HAVING pentru a selecta vânzările totale din anii de după 2003.,

Code language: SQL (Structured Query Language) (sql)

Încercați să-L Afară

clauza GROUP BY: MySQL vs standard SQL

Standard SQL nu permite să utilizați un alias în GROUP BY clauză, cu toate acestea, MySQL suporta acest lucru.

de exemplu, următoarea interogare extrage anul de la data comenzii. Primul foloseste year ca un alias de expresia YEAR(orderDate) și apoi folosește year alias-ul GROUP BY clauză., Această interogare nu este validă în SQL standard.

Încercați să-L Afară

MySQL, de asemenea, vă permite să sortați grupuri în ordine crescătoare sau descrescătoare ordine, în timp ce standardul SQL nu. Ordinea implicită este ascendentă., De exemplu, dacă doriți să obțineți numărul de comenzi de statut și un fel de stare, în ordine descrescătoare, puteți folosi GROUP BY clauza cu DESC ca următoarea interogare:

Code language: SQL (Structured Query Language) (sql)

Încercați să-L Afară

Observați că am folosit DESC în GROUP BY clauză pentru a sorta status în ordine descrescătoare., De asemenea, am putea specifica explicit ASC în clauza GROUP BY pentru a sorta grupurile după stare în ordine crescătoare.

în acest tutorial, v-am arătat cum să utilizați Clauza MySQL GROUP BY pentru a grupa rândurile în subgrupuri pe baza valorilor coloanelor sau expresiilor.

  • a fost acest tutorial util?
  • YesNo

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Sari la bara de unelte