Skip to main content

Premièrement, le premier mot

Obtenir d'abord la scène de la demande de données, j'ai maintenant une liste de planification, où le stockage de négociation de chaque magasin, où la ville contient la ville chaque magasin appartient à. Zone, grands attributs de district, je dois prendre ce tableau, chaque ville, chaque province, région et les transactions du pays dans tout le pays, que dois-je faire?

La liste TT est la suivante:

Il existe une méthode plus simple que nous écrivons 5 déclarations SQL puis récupérez les données dans Excel. Déclaration de 5 SQL comme suit: En y pensant, que devrions-nous faire?


select count(orderid) as sales from t where deal_date between "2019-05-01" and "2019-05-31"
select area ,count(orderid) as sales from t where deal_date between "2019-05-01" and "2019-05-31"group by area, volume de trading urbain
select area ,province ,count(orderid) as sales from t where deal_date between "2019-05-01" and "2019-05-31"group by area ,province Volume de transaction de stockage
La méthode ci-dessus peut atteindre nos objectifs pour répondre à nos besoins, mais cette méthode est trop faible, nous devons également traiter d'unifié dans Excel, c'est très gênant. Vous pouvez combiner les résultats ci-dessus dans SQL, vous n'avez donc pas besoin de fusionner dans EXCel. La réponse est possible, doit utiliser l'Union et l'union tout, et les résultats de la requête sont combinés. select area ,province ,city ,count(orderid) as sales from t where deal_date between "2019-05-01" and "2019-05-31"group by area ,province ,city Union et Union Tous: Le front est pris pour les résultats consolidés, tout en restituant toutes les données après la fusion.
Le code est le suivant select area ,province ,city ,shop ,count(orderid) as sales from t where deal_date between "2019-05-01" and "2019-05-31"group by area ,province ,city ,shop
Tout le monde doit noter que choisir d'avoir beaucoup de NULL dans la commande ci-dessus, elle est due au nombre de colonnes des deux planches tout devrait être égal. Le résultat final est le suivant:
Deuxièmement, le groupe Set
Utilisez l'union tout pour obtenir 5 SQL supplémentaires, puis traiter plus de plus simple dans Excel, mais trouve le code ci-dessus très long, très excédentaire . Certaines personnes se rendent compte que certaines personnes non seulement découvertes, mais pensant aussi une meilleure façon de résoudre, quelle est la méthode? C'est la version plus du groupe aujourd'hui. Le vrai nom s'appelle le groupe. Cela peut être synthétisé dans différentes directions. Par exemple, selon la synthèse régionale, selon la synthèse régionale et provinciale, selon les provinces et la synthèse urbaine, synthétisent selonH et magasin. select null,null,null,null,count(orderid) as sales from t where deal_date between "2019-05-01" and "2019-05-31"union allselect area,null,null,null,count(orderid) as sales from t where deal_date between "2019-05-01" and "2019-05-31"group by areaunion allselect area,province,null,null,count(orderid) as sales from t where deal_date between "2019-05-01" and "2019-05-31"group by area,provinceunion allselect area,province ,city,null,count(orderid) as sales from t where deal_date between "2019-05-01" and "2019-05-31"group by area,province,cityunion allselect area,province,city,shop,count(orderid) as sales from t where deal_date between "2019-05-01" and "2019-05-31"group by area,province ,city,shop

Utilisation de GSAU lors de la collecte, le code est le suivant:

Les effets obtenus ci-dessus et l'effet obtenu par l'uion est le même, mais il est beaucoup plus simple que le code. De la connexion . Le groupe B du groupe B représente tous les champs d'obtenir le package et le groupe défini dans la combinaison de différents champs derrière le groupe. La combinaison du champ combiné est placée dans une petite école ou un seul champ.

Pour obtenir la masse du pays, mais il n'a pas besoin d'être emballé, mais d'utiliser les groupes de groupe, nous utilisons des groupes nuls lorsque nous trouvons des transactions nationales.

Le grouping_id est utilisé pour montrer le numéro de série de chaque package. 1 Représentant le premier paquet, 2 représentent le deuxième colis ,. Nous pouvons choisir la combinaison que nous devons suivre le groupe_id. Si nous avons besoin de la masse du pays, laissez le groupe_id = 1; Si nous avons besoin de la masse de chaque province, laissez le groupe_id = 3. D'autres sont les mêmes.

Troisièmement, Cube

Après avoir visionné le groupe, examine un autre plus, ce qui est cube. Cette fonction est une combinaison de la taille du groupe en groupes. Direct to Vase Code:

select null ,area ,province ,city ,shop ,count(orderid) as sales ,grouping_idfrom t where deal_date between "2019-05-01" and "2019-05-31"group by null ,area ,province ,city ,shopgrouping sets (null ,area ,(area,province) ,(area,province,city) ,(area,province ,city,shop))order by grouping_id Le code ci-dessus consiste à coïncider dans la région et aux provinces et utiliser le bloc, le résultat final est le suivant:
Cube sera d'abord le nombre total de données Cincicieusement, notamment NULL, NULL, puis coïncide dans la zone, NULL, puis synthétisé NULL, province et enfin dans la zone générale, province.

Four, Rollup

Voir la dernière version plus, qui est le rouleau. Cette fonction est vraiment la même que celle du cube, qui est une combinaison de toutes les tailles du groupe selon

. Ou l'exemple ci-dessus, voyons les résultats. Le code est le suivant:

Le résultat final est le suivant:


select area ,province ,count(orderid) as sales ,grouping_id from t where deal_date between "2019-05-01" and "2019-05-31"group by area ,provincewith cubeorder by grouping_id

a soigneusement observé les résultats obtenus par Cube et Rollup, nous verrons que le rouleau a une petite province nulle. Combinaison, voir la différence, le rouleau est associé à l'indice le plus à gauche. [

Plus versionsCette section est très pratique.Si la compétence compétente, vous pouvez réduire de nombreuses charges de travail.

Sujets

Catégories