Diferència entre grup per ordre i ordre en SQL

Autora: Laura McKinney
Data De La Creació: 1 Abril 2021
Data D’Actualització: 9 Ser Possible 2024
Anonim
Diferència entre grup per ordre i ordre en SQL - Tecnologia
Diferència entre grup per ordre i ordre en SQL - Tecnologia

Content


SQL permet organitzar les dades obtingudes per la consulta. Tenim dues clàusules per organitzar les dades obtingudes a la consulta que són la clàusula Group By i Order By. El punt que distingeix la clàusula Group By i Order By és aquest Agrupar per la clàusula s'utilitza quan volem aplicar la funció global a més d'un conjunt de tuples i Demanat per la clàusula s'utilitza quan volem ordenar les dades obtingudes per la consulta. Analitzem algunes diferències entre la clàusula Grup Per ordre i Ordre per ordre amb l'ajut del gràfic de comparació que es mostra a continuació.

  1. Gràfic de comparació
  2. Definició
  3. Diferències claus
  4. Conclusió

Gràfic de comparació

Bases per a la comparacióAgrupar perDemanat per
BàsicGrup By s'utilitza per formar el grup del conjunt de les tuples.Order By s'utilitza per organitzar les dades obtingudes com a resultat d'una consulta de forma ordenada.
Atribut L'atribut sota la funció Agregat no pot estar en la clàusula Grup Per.L'atribut sota agregat pot estar en clausura per ordre.
TerraFet per motius de similitud entre els valors d’atributs.Fet a terra en ordre ascendent i en ordre descendent.

Definició de grup per clàusula

Les funcions agregades com ara, min, màxim, suma, recompte s’apliquen al conjunt únic de tuples. En cas que, si voleu aplicar les funcions agregades al grup del conjunt de tuples, tenim el grup per clàusula. Agrupar per clàusula agrupa els tuples que tenen el mateix valor d’atribut.


Hi ha una cosa recorda sobre la clàusula Group By, assegureu-vos que atribut sota la Agrupar per la clàusula ha d'aparèixer a la secció SELECCIONA clàusula però no sota un funció agregada. Si la clàusula Group By conté un atribut que no es troba dins de la clàusula SELECT o si es troba sota la clàusula SELECT però sota la funció agregada, la consulta esdevé errònia. Per tant, podem dir que la clàusula Group By sempre s’utilitza en col·laboració amb la clàusula SELECT.

Prenguem un exemple per entendre la clàusula Grup Per.

SELECT Departament _ID, promig (salari) com avg_salary del grup de professors Per departament_ID.


Podeu veure que inicialment es forma un resultat intermedi que ha agrupat els departaments.

A continuació, s'aplica la funció agregada avg a cada grup de departaments i el resultat es mostra a continuació.

Definició d'Ordre Per Clàusula

La clàusula Order By s'utilitza per mostrar les dades obtingudes per una consulta en l'ordre ordenat. Igual que la clàusula Group By, la clàusula Order By també s'utilitza en col·laboració amb la clàusula SELECT. Si no esmenta l’ordre d’ordenació, la clàusula Ordenar per ordre les dades en l’ordre ascendent. Podeu especificar una ordre ascendent com asc i ordre descendent segons desc.

Entenem el funcionament de la clàusula Order By amb l'ajuda del següent exemple. Tenim una taula de Professors i aplicaré l’ordenació a dues columnes Departament_Id i Salari, de la taula de Professors.

Seleccioneu Departament_ID, salari a partir del professorat Per departament_Id asc, salari desc.

Primer podeu veure que organitza el Departament _ID per ordre ascendent i, després, ordena els sous del mateix departament per ordre descendent.

  1. La clàusula Grup per grup agrupa el conjunt de tuples en una relació que es troba sota la clàusula SELECT. D'altra banda, la clàusula Ordre per ordre el resultat de la consulta en ordre ascendent o descendent.
  2. L'atribut sota la funció agregada no pot estar sota la clàusula Group By mentre que, l'atribut sota la funció agregada es pot trobar a la clàusula Order By.
  3. L’agrupació de tuples es fa a partir de la similitud entre els valors d’atribut dels tuples. D’altra banda, l’ordenació o ordenació es fa a partir d’ordre ascendent o ordre descendent.

Conclusió:

Si voleu formar el grup del conjunt de tuples, heu d'utilitzar la clàusula Group By. En cas que vulgueu organitzar les dades d’una sola columna o, més d’una columna del conjunt de tuples, en ordre ascendent o descendent, cal utilitzar la clàusula Order By.