λογισμικό

* Γνώση Υπολογιστών >> λογισμικό >> λογισμικού βάσεων δεδομένων

Τι είναι ένα συγκεντρωτικό πίνακα σε SQL

; Στην SQL , ένας συγκεντρωτικός πίνακας είναι ένα σύνολο δεδομένων που μετασχηματίζεται από μια συλλογή από ξεχωριστές γραμμές σε μια συλλογή των στηλών . Στις σχεσιακές βάσεις δεδομένων , όπως ο Microsoft SQL Server, Oracle και MySQL , συγκεντρωτικοί πίνακες μπορούν να χρησιμοποιηθούν για να απλοποιήσουν εκτενή στοιχεία , προκειμένου να καταστεί ευκολότερη η ανάγνωση και κατανόηση. Για να δημιουργήσετε έναν πίνακα περιστροφής , ένας συγκεντρωτικός χρησιμοποιείται ενάντια σε ένα σύνολο δεδομένων για τη διανομή πολλαπλές σειρές από μία μόνο στήλη σε μια ενιαία γραμμή με πολλαπλές στήλες . Αυτό στρέφεται ουσιαστικά το αποτέλεσμα που πλαγίως . Δείγμα δεδομένων
Η

Για να κατανοήσουμε καλύτερα έναν πίνακα περιστροφής , ένα παράδειγμα κάποια στοιχεία για τις πωλήσεις που αναφέρονται εδώ. Αντιγράψτε το παρακάτω στο Microsoft SQL Server Management Studio για να δοκιμάσετε τα παραδείγματα .

Δημιουργία πίνακα # PivotTestTable ( CustName varchar ( 8 ) , ITEM_TYPE varchar ( 8 ) , Item_Amount αριθμητικό ( 6,2 ) )

εισάγετε στο # PivotTestTableselect « Jason » , «Υ» , 435.34unionselect « Jason » , «Λογισμικό» , 243.54unionselect « Jason », « Monitor » , 158.23unionselect « Alison » , «Υ» , 345.89unionselect « Alison » , «Λογισμικό» , 78.78unionselect « Alison », « Monitor » , 123,45
εικόνων Ξεκινώντας UnPivoted Data
Η

Όταν ο πίνακας temp, # PivotTestTable , των ψήφων, το αποτέλεσμα είναι τα ακόλουθα .

CustName ITEM_TYPE Item_Amount -------- -------------------- Alison Computer Monitor 345.89Alison 123.45Alison Software 78.78Jason Computer Monitor 435.34Jason 158.23Jason Λογισμικό 243.54
Όπως μπορείτε να δείτε , το σύνολο των αποτελεσμάτων δείχνει δύο πελάτες , Alison και ο Ιάσονας , που έχουν αγοράσει τρεις διαφορετικούς τύπους στοιχείων . Υπάρχουν έξι σειρές δεδομένων για δύο πελάτες . Αν θέλαμε να δούμε τα δεδομένα σε μια ενιαία γραμμή ανά πελάτη , θα χρησιμοποιήσει έναν πίνακα περιστροφής για να επιτευχθεί το επιθυμητό αποτέλεσμα .

Η Pivot από τη λειτουργία PIVOT
Η

Microsoft SQL Server έχει μια λειτουργία PIVOT ενσωματωμένη SQL Server. Εδώ είναι ένα παράδειγμα με τα δεδομένα # PivotTestTable .

SELECTCustName ως Total_Sales_By_Cust , τον υπολογιστή, Monitor , λογισμικού από ( SELECTCustName , ITEM_TYPE , Item_AmountFROM # PivotTestTable ) aPIVOT ( άθροισμα ( Item_Amount ) ΓΙΑ ITEM_TYPE σε (Computer , Monitor , λογισμικό ) ) β

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

Monitor Total_Sales_By_Cust Computer Software ------------------- ----------- --------------- Alison 345.89 123.45 435.34 158.23 78.78Jason 243.54
εικόνων Pivot από συγκεντρωτικά υπόθεση
Δήλωση

χρησιμοποιώντας ένα συνολικό λειτουργία ( SUM , AVG , MIN , MAX ) γύρω από μια δήλωση περίπτωση σε ένα ερώτημα SQL , είμαστε σε θέση να επιτύχουν το ίδιο αποτέλεσμα με τη λειτουργία PIVOT με λιγότερη εργασία .

SELECTCustName ως Total_Sales_By_Cust , ποσό ( περίπτωση ITEM_TYPE όταν «Υ» , τότε Item_Amount τέλος ) ως οθόνη του υπολογιστή , ποσό ( περίπτωση ITEM_TYPE όταν « Monitor », τότε Item_Amount τέλος ), όπως Monitor , ποσό ( περίπτωση ITEM_TYPE όταν «Λογισμικό », τότε Item_Amount τέλος ), όπως λογισμικού από # PivotTestTableGROUP ΑΠΟ CustName

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

ένα κοινό λάθος να δημιουργήσετε έναν πίνακα περιστροφής είναι να δημιουργήσει μια να ενταχθούν ξανά στο τραπέζι πηγή . Αυτό θα οδηγήσει σε αναξιόπιστα αποτελέσματα και θα πρέπει να αποφεύγεται . Αυτό το παράδειγμα είναι αυστηρά ένα παράδειγμα του τι δεν πρέπει να κάνετε . Το αποτέλεσμα σε αυτό το δείγμα θα είναι το ίδιο? Ωστόσο αυτό το δείγμα δεν θα λειτουργήσει σε όλες τις περιπτώσεις

SELECTp1.CustName , p1.Item_Amount ως οθόνη του υπολογιστή , p2.Item_Amount όπως Monitor , όπως p3.Item_Amount λογισμικού από # PivotTestTable p1INNER . JOIN # PivotTestTable p2on p1.CustName = p2.CustNameand p2.Item_Type = ' Monitor'INNER JOIN # PivotTestTable p3on p1.CustName = p3.CustNameand p3.Item_Type = ' Software'WHERE p1.Item_Type = «Υ»


εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα