SQL Pivot - Μάθετε πώς να μετατρέψετε σειρές σε στήλες



Αυτό το άρθρο σχετικά με το SQL Pivot είναι ένας ολοκληρωμένος οδηγός για το πώς να μετατρέψετε τα δεδομένα επιπέδου γραμμής σε στήλη δεδομένων με αναλυτικά παραδείγματα.

Σχετικός αποθηκεύστε τεράστιες ποσότητες δεδομένων με τη μορφή πινάκων. Αυτοί οι πίνακες μπορούν να έχουν οποιοδήποτε αριθμό σειρών και στηλών. Αλλά, τι γίνεται αν έπρεπε να αλλάξετε τα δεδομένα επιπέδου γραμμής σε στήλη; Λοιπόν, σε αυτό το άρθρο σχετικά με το SQL Pivot, θα σας δείξω πώς μπορείτε να μετατρέψετε σειρές σε μια στήλη σε έναν SQL Server.

Τα ακόλουθα θέματα θα καλυφθούν σε αυτό το άρθρο:





Τι είναι το PIVOT στο SQL;

Το PIVOT χρησιμοποιείται για την περιστροφή της τιμής πίνακα μετατρέποντας τις μοναδικές τιμές μιας μεμονωμένης στήλης σε πολλές στήλες. Χρησιμοποιείται για την περιστροφή των γραμμών σε τιμές στηλών και εκτελεί συγκεντρώσεις όταν απαιτείται στις υπόλοιπες τιμές στηλών.

τι είναι μια παρουσία στην Java

Το UNPIVOT, από την άλλη πλευρά, χρησιμοποιείται για την εκτέλεση των αντίθετων λειτουργιών. Έτσι, χρησιμοποιείται για τη μετατροπή των στηλών ενός συγκεκριμένου πίνακα σε τιμές στηλών.



Προχωρώντας σε αυτό το άρθρο, ας κατανοήσουμε τη σύνταξη του SQL Pivot.

Σύνταξη:

SELECT NonPivited ColumnName, [First Pivot ColumnName] AS ColumnName, [Second Pivot ColumnName] AS ColumnName, [Third Pivot ColumnName] AS ColumnName, ... [Last Pivot ColumnName] AS ColumnName FROM (SELECT ερώτημα που παράγει τα δεδομένα) AS [ψευδώνυμο για το αρχικό ερώτημα] PIVOT ([AggregationFunction] (ColumName) FOR [ColumnName της στήλης των οποίων οι τιμές θα γίνουν κεφαλίδες στήλης] IN ([First Pivot ColumnName], [Second Pivoting ColumnName], [Third Pivoting ColumnName] ... [τελευταίο περιστρεφόμενη στήλη])) AS [ψευδώνυμο για τον συγκεντρωτικό πίνακα]

Εδώ,μπορείτε επίσης να χρησιμοποιήσετε το ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ ρήτρα για να ταξινομήσετε τις τιμές είτε με αύξουσα είτε με φθίνουσα σειρά. Τώρα που γνωρίζετε τι είναι το PIVOT στη SQL και τη βασική σύνταξή του, ας προχωρήσουμε και να δούμε πώς να το χρησιμοποιήσουμε.

Παραδείγματα

Για την καλύτερη κατανόησή σας, θα εξετάσω τον παρακάτω πίνακα για να σας εξηγήσω όλα τα παραδείγματα.



Πίνακας προμηθευτών:

Προμηθευτής DaysofManufacture Κόστος Κωδικός πελάτη PurchaseID
ένας121230έντεκαΡ1
2είκοσι ένα154322Ρ2
3322. 3. 4. 5έντεκαΡ3
414876522Ρ1
542345233Ρ3
631543133Ρ1
7412342έντεκαΡ2
854365422Ρ2
9331234έντεκαΡ3
1056683233Ρ2

Ας γράψουμε ένα απλό ερώτημα για να ανακτήσουμε το μέσο κόστος που ξοδεύει κάθε πελάτης.

SELECT CustomerID, AVG (Cost) AS AverageCostofCustomer FROM Προμηθευτών GROUP BY CustomerID

Παραγωγή:

Κωδικός πελάτη Μέσος όρος πελάτη
έντεκα1787.75
224654
335238.33

Τώρα, ας πούμε ότι θέλουμε να περιστρέψουμε τον παραπάνω πίνακα. Εδώ, οι τιμές στηλών CustomerID θα γίνουν κεφαλίδες στηλών.

- Δημιουργία συγκεντρωτικού πίνακα με μία σειρά και τρεις στήλες ΕΠΙΛΟΓΗ 'AverageCostofCustomer' AS Cost_According_To_Customers, [11], [22], [33] FROM (SELECT CustomerID, Cost FROM Suppliers) AS SourceTable PIVOT (AVG (Cost) FOR CustomerID IN ( [11], [22], [33])) Συγκεντρωτικός πίνακας

Παραγωγή:

Κόστος_Απογραφή_Για_ Πελάτες έντεκα2233
Μέσος όρος πελάτη 1787.7546545238.33

Σημείωση: Όταν χρησιμοποιείτε συνολικές συναρτήσεις με το PIVOT, οι τιμές null δεν λαμβάνονται υπόψη κατά τον υπολογισμό μιας συγκέντρωσης.

Λοιπόν, αυτό ήταν ένα βασικό παράδειγμα, αλλά ας καταλάβουμε τώρα πώς λειτούργησε η ρήτρα PIVOT.

Εργασία της ρήτρας PIVOT

Όπως μπορείτε να αναφέρετε παραπάνω, για να δημιουργήσετε ένα PIVOT TABLE, πρέπει να ακολουθήσετε τα παρακάτω βήματα:

  • Επιλέξτε στήλες για περιστροφή
  • Στη συνέχεια, επιλέξτε έναν πίνακα προέλευσης.
  • Εφαρμόστε τον τελεστή PIVOT και, στη συνέχεια, χρησιμοποιήστε τις συγκεντρωτικές συναρτήσεις.
  • Αναφέρετε τις συγκεντρωτικές τιμές.

Επιλέξτε στήλες για περιστροφή

Αρχικά, πρέπει να καθορίσουμε τα πεδία που θα συμπεριληφθούν στα αποτελέσματά μας. Στο παράδειγμά μας, εξέτασα τη στήλη AverageCostofCustomer στον συγκεντρωτικό πίνακα. Στη συνέχεια, δημιουργήσαμε τρεις άλλες στήλες με τις κεφαλίδες στηλών 11, 22 και 33. Παράδειγμα-

ΕΠΙΛΟΓΗ «Μέσος όρος κόστους πελάτη» AS Κόστος_Κατάρτιση_To_Customers, [11], [22], [33]

Επιλέξτε τον πίνακα προέλευσης

Στη συνέχεια, πρέπει να καθορίσετε τη δήλωση SELECT που θα επιστρέψει τα δεδομένα προέλευσης για τον συγκεντρωτικό πίνακα. Στο παράδειγμά μας, επιστρέφουμε το αναγνωριστικό πελάτη και το κόστος από τον πίνακα προμηθευτών.

(ΕΠΙΛΕΞΤΕ Κωδικός πελάτη, Κόστος ΑΠΟ προμηθευτές) Πίνακας Πηγής

Εφαρμόστε τον τελεστή PIVOT και, στη συνέχεια, χρησιμοποιήστε τις συγκεντρωτικές συναρτήσεις

Στη συνέχεια, πρέπει να καθορίσετε τη συνάθροιση που θα χρησιμοποιείται κατά τη δημιουργία του συγκεντρωτικού πίνακα. Στο παράδειγμά μας, έχω χρησιμοποιήσει τη συνάρτηση AVG για τον υπολογισμό του μέσου κόστους.

PIVOT (AVG (κόστος)

Αναφέρετε τις συγκεντρωτικές τιμές

Τέλος, πρέπει να αναφέρετε τις τιμές που πρέπει να περιληφθούν στον συγκεντρωτικό πίνακα που προκύπτει. Αυτές οι τιμές θα χρησιμοποιηθούν ως επικεφαλίδες στηλών στον συγκεντρωτικό πίνακα.

ΓΙΑ ΤΟ CustomerID IN ([11], [22], [33])) ως Συγκεντρωτικός Πίνακας

Έτσι λειτουργούν οι χειριστές PIVOT. Προχωρώντας σε αυτό το άρθρο σχετικά με το SQL PIVOT, ας καταλάβουμε πόσο διαφορετικό είναι από το SQL UNPIVOT.

SQL UNPIVOT

Ο τελεστής SQL UNPIVOT χρησιμοποιείται για την εκτέλεση της αντίθετης λειτουργίας από εκείνη του PIVOT. Χρησιμοποιείται για την περιστροφή των δεδομένων της στήλης σε δεδομένα επιπέδου γραμμής. Η σύνταξη, του UNPIVOT, είναι παρόμοια με αυτή του PIVOT. Η μόνη διαφορά είναι ότι πρέπει να χρησιμοποιήσετε το ' UNPIVOT ' .

Παράδειγμα:

Ας δημιουργήσουμε έναν πίνακα με τις στήλες SupplierID, AAA, BBB και CCC. Επίσης, εισαγάγετε μερικές τιμές.

ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΔΕΙΓΜΑΤΟΣ (Προμηθευτής int, AAA int, BBB int, CCC int) GO INSERT INTO sampletable VALUES (1,3,5,6) INSERT INTO sampletable VALU (2,9,2,8) INSERT INTO sampletable VALUES (3, 8,1,7) Πηγαίνετε

Παραγωγή:

Προμηθευτής ΑΑΑ BBB CCC
ένας356
2928
38ένας7

Τώρα, ας πούμε, θέλουμε να αποσυνδέσουμε τον πίνακα. Για να το κάνετε αυτό, μπορείτε να ανατρέξετε στον ακόλουθο κωδικό:

SELECT Προμηθευτής, Πελάτες, Προϊόντα ΑΠΟ (SELECT ΠρομηθευτήςD, AAA, BBB, CCC FROM sampletable) p UNPIVOT (Προϊόντα ΓΙΑ Πελάτες IN (AAA, BBB, CCC))
Προμηθευτής Οι πελάτες Προϊόντα

ένας

ΑΑΑ

3

ένας

BBB

5

ένας

τι είναι η λειτουργία στο sql

CCC

6

2

ΑΑΑ

9

2

BBB

2

2

CCC

8

3

ΑΑΑ

ελεγκτής προβολής μοντέλου σε java

8

3

BBB

ένας

3

CCC

7

Με αυτόν τον τρόπο μπορείτε να χρησιμοποιήσετε το SQL PIVOT και το UNPIVOT. Με αυτό, καταλήγουμε σε αυτό το άρθρο. Ελπίζω να καταλάβατε, πώς να χρησιμοποιήσετε το SQL. Εάν θέλετε να μάθετε περισσότερα για MySQL και γνωρίστε αυτήν τη σχεσιακή βάση δεδομένων ανοιχτού κώδικα και, στη συνέχεια, ρίξτε μια ματιά στη δική μας που έρχεται με ζωντανή εκπαίδευση με καθοδήγηση εκπαιδευτή και πραγματική εμπειρία έργου. Αυτή η εκπαίδευση θα σας βοηθήσει να κατανοήσετε τη MySQL σε βάθος και να σας βοηθήσει να επιτύχετε την εξουσία πάνω στο θέμα.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του άρθρου σχετικά με το SQL Pivot και θα επικοινωνήσω μαζί σας.