כיצד לתקן את השגיאה 'העמודה אינה חוקית ברשימת הבחירה מכיוון שהיא אינה כלולה בפונקציה מצטברת או בסעיף GROUP BY'



נסה את הכלי שלנו לביטול בעיות

הטעות ' העמודה אינה חוקית ברשימת הבחירה מכיוון שהיא אינה כלולה בפונקציה מצטברת או בסעיף GROUP BY 'המוזכר להלן מתעורר כשאתה מבצע' קבוצה לפי שאילתת, וכללתם לפחות עמודה אחת ברשימת הבחירה שאינה חלק מהקבוצה לפי סעיף, ואינה כלולה בפונקציה מצטברת כמו max (), min (), sum (), count () ו ממוצע () . אז כדי שהשאילתה תעבוד עלינו להוסיף את כל העמודות שאינן מצטברות לאחת מהקבוצות לפי סעיף אם זה אפשרי ואין לה שום השפעה על התוצאות או לכלול את העמודות הללו בפונקציה מצטברת מתאימה, וזה יעבוד כמו קסם. השגיאה מתרחשת ב- MS SQL אך לא ב- MySQL.



שגיאה 'העמודה אינה חוקית ברשימת הבחירה מכיוון שהיא אינה כלולה בפונקציה מצטברת או בסעיף GROUP BY'



שתי מילות מפתח “ קבוצה לפי 'ו' פונקציה מצטברת נעשה שימוש בשגיאה זו. אז עלינו להבין מתי ואיך להשתמש בהם.



קבץ לפי סעיף:

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

קבץ לפי אסטרטגיית פיצול-החל-שילוב:

קבץ לפי אסטרטגיית 'פיצול-החל-שילוב'

  • שלב הפיצול מחלק את הקבוצות לערכים שלהן.
  • שלב ההחלה מיישם את הפונקציה המצרפית ויוצר ערך יחיד.
  • השלב המשולב משלב את כל הערכים בקבוצה כערך יחיד.

מדגם אסטרטגיה 'SPLIT_APPLY_COMBINE'



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

ניתן להסביר זאת באמצעות הדוגמה הבאה. ראשית, צור מסד נתונים בשם 'appuals'.

יצירת מסד נתונים

דוגמא:

צור טבלה “ עוֹבֵד 'באמצעות הקוד הבא.

השתמש [appuals] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO הגדר ANSI_PADDING ב- GO צור טבלה [dbo]. [עובד] ([e_id] [int] NOT NULL, [e_ename] [varchar] (50) NULL, [dep_id] [int] NULL, [משכורת] [int] NULL, CONSTRAINT [PK_ Employee] PRIMARY KEY CLUSTERED ([e_id] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON_ ALLOC PRIMARY]) ב- [PRIMARY] GO הגדר ANSI_PADDING OFF GO

יצירת טבלת עובדים

כעת הכנס נתונים לטבלה באמצעות הקוד הבא.

הכנס לערכי עובד (e_id, e_ename, dep_id, משכורת) (101, 'סאדיה