כיצד להשתמש במודול Crosstab PostrgreSQL

Kyzd Lhstms Bmwdwl Crosstab Postrgresql



כאשר אתה מפעיל משפט SELECT כדי לאחזר את הרשומות מטבלת PostgreSQL, הנתונים מוחזרים בצורה טבלאית. ייתכן שהטופס הטבלה לא תמיד יהיה הטוב ביותר לקריאת הנתונים, במיוחד כאשר אתה רוצה להשוות את הערכים. גישה טובה יותר היא להחזיר את הרשומות כלוח צולב. לשם כך, PostgreSQL מציע את ה- tablefunc כדי לאפשר למשתמשים להשתמש בפונקציית הצלבות כדי לייצג את נתוני היעד כטבלת ציר. פוסט זה מרחיב יותר כיצד להשתמש בפונקציית הצלבות PostgreSQL. תמשיך לקרוא!

עבודה עם מודול Crosstab PostgreSQL

שימוש בחדר כדי לציין כיצד אתה רוצה שהנתונים שלך יופיעו הוא שימושי. עם PostgreSQL, למרות שדרך ברירת המחדל היא לקבל את הנתונים בצורה טבלאית, מודול הצלבות נותן לך אפשרות נוספת. אתה יכול ליצור את טבלאות הציר באמצעות עמודות 'בחר' מטבלת PostgreSQL להצגה טובה יותר.

התכונה המדהימה מגיעה כהרחבה לגרסת PostgreSQL 8.3. התוסף 'tablefunc' מציע את פונקציית ה-crosstab, מה שמאפשר לקבל את טבלאות הציר כקבוצת התוצאות שלך. בואו ניתן דוגמה.







ראשית, אנו יוצרים את טבלת ה'תוצאות' עם שלוש עמודות באמצעות הפקודה הבאה:





הטבלה שנוצרה ריקה. לפיכך, קדימה השתמש בשאילתת INSERT כדי להוסיף לה את הערכים. למקרה זה, אנו מוסיפים מספר ערכים כפי שמוצג להלן:





אם נריץ את המשפט 'select', נקבל את התוצאות הבאות. שים לב כיצד דרך ברירת המחדל הזו לאחזר את הרשומות מציגה אותן בצורה טבלה. העמודות משמשות ככותרות והערכים שלהן מופיעים בשורות:



למרות שהגישה הקודמת עובדת ברוב המקרים, ישנה אפשרות נוספת לאחזר את אותן רשומות. למקרה זה, אנו רוצים ליצור טבלת ציר. לכן, אנו משתמשים בתוסף 'tablefunc' שמגיע עם PostgreSQL גרסה 8.3+.


אז, בואו ניצור תוסף 'tablefunc' כדי לאפשר אותו כאשר אנו קוראים לו בשאילתה. בצע את הפקודה הבאה:

צור הרחבה אם לא קיים tablefunc ;

אתה תדע שהתוסף הופעלה בהצלחה ברגע שתקבל פלט כמו זה שיש לנו בתמונה הקודמת.

עבור פונקציית הצלבות שלנו, בואו נעשה את זה כך שהעמודה הראשונה היא הפקולטה. מתחתיו הפקולטות השונות שיש לנו בטבלה שלנו. לצד עמודת הפקולטה, יש לנו עמודות נוספות המייצגות את הערכים השונים בעמודת הקטגוריה של הטבלה שלנו. לבסוף, עבור כל קטגוריה, יש לנו את מספר התלמידים שהגיעו לקטגוריות השונות.

כדי להשיג טבלת ציר שכזו, השתמש בתחביר הבא:

בחר * מ-CROSSTAB ( 'בחר עמודה1 , עמודה 2 , column3 FROM table_name ORDER BY criteriaa' )

AS new_name ( column1 data_type , column2 data_type , column_n data_type ) ;

באמצעות הטבלה לדוגמה שיצרנו, הפקודה שלנו נראית כך:

לפני שנראה את התוצאות, בואו נפרט כיצד פועלת פקודת מודול הצלב. ראשית, המשפט SELECT מחזיר שלוש עמודות. העמודה הראשונה מטופלת כמזהה השורה. במקרה שלנו, זה עמודת 'הפקולטה'. העמודה השנייה, שהיא העמודה 'קטגוריה', מייצגת את הקטגוריות עבור טבלת הציר. לבסוף, העמודה השלישית מכילה את הערכים עבור הקטגוריות. במקרה שלנו, מדובר במספר התלמידים בכל קטגוריה.

מתוך הבנה זו, ברגע שנלחץ על מקש 'Enter', נקבל את טבלת הציר באופן הבא:

בהתבסס על טבלת הציר המוחזרת, אנו יכולים לראות שהיא פועלת כמו מערך דו-ממדי כאשר העמודה הראשונה במשפט SELECT היא המערך הראשון והעמודה השנייה היא המערך השני בממד. העמודה השלישית מכילה את הערכים עבור רכיבי המערך השני.

סיכום

טבלת הצלב של PostgreSQL טובה לייצוג ערכי הטבלה כטבלת ציר. עליך להחזיר שלוש עמודות בהצהרת ה-SELECT שלך כדי להשתמש במודול הצלבות, והפוסט הזה שיתף דוגמה מעשית כיצד להשתמש בו. חוץ מזה, הסברנו איך מודול הצלבות עובד ביצירת טבלת הצירים המשתמשת באותו היגיון כמו מערך דו-ממדי.