1469 votes

À l’aide de groupe par sur plusieurs colonnes

Je comprends le point de ``

Mais comment fait `` travail et ce que cela signifie ?

2712voto

Smashery Points 13208

Group By X moyen de mettre toutes les personnes avec la même valeur de X dans le groupe.

Group By X, Y moyen de mettre tous ceux qui ont les mêmes valeurs de X et de Y dans la un groupe.

Pour illustrer à l'aide d'un exemple, disons que nous avons le tableau suivant, de le faire avec ceux qui assistent à ce sujet lors d'une université:

Table: Subject_Selection

Subject   Semester   Attendee
---------------------------------
ITB001    1          John
ITB001    1          Bob
ITB001    1          Mickey
ITB001    2          Jenny
ITB001    2          James
MKB114    1          John
MKB114    1          Erica

Lorsque vous utilisez un group by sur le sujet de la colonne seulement; dire:

select Subject, Count(*)
from Subject_Selection
group by Subject

Vous obtiendrez quelque chose comme:

Subject    Count
------------------------------
ITB001     5
MKB114     2

...parce qu'il y a 5 entrées pour ITB001, et 2 pour MKB114

Si nous devions group by deux colonnes:

select Subject, Semester, Count(*)
from Subject_Selection
group by Subject, Semester

nous aimerions obtenir ceci:

Subject    Semester   Count
------------------------------
ITB001     1          3
ITB001     2          2
MKB114     1          2

C'est parce que, quand on groupe par deux colonnes, c'est dire "Groupe afin que tous ceux du même Sujet et le Semestre sont dans le même groupe, puis de calculer toutes les fonctions d'agrégation (Count, Sum, average, etc.) pour chacun de ces groupes". Dans cet exemple, ceci est démontré par le fait que, lorsque nous les compter, il y a trois personnes en faire ITB001 en semestre 1, et deux à le faire dans le semestre 2. Deux des personnes qui le font MKB114 sont en semestre 1, donc il n'y a pas de ligne pour le semestre 2 (pas de données s'inscrit dans le groupe "MKB114, Semestre 2")

Espérons que cela a du sens.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X