פשוט תנו לי מספר שורה
03/08/2024
הפונקציה ROW_NUMBER
של SQL מוסיפה מספרי שורות לתוצאות שאילתות, כך לפחות לפי שמה. אבל מספיק לנסות להריץ את השאילתה הבאה כדי להבין שיש פה משהו יותר עמוק:
SELECT *, ROW_NUMBER() from employees;
תגובת בסיס הנתונים תהיה משהו כמו:
SQLite3Error: SQLITE_ERROR: sqlite3 result code 1: misuse of window function ROW_NUMBER()
מה זה? למה misuse? ומה זה אומר window function? איזה חלון יש פה?
קל מאוד ללכת ל ChatGPT כדי שיתקן את השאילתה. הוא יחזיר את זה:
SELECT *, ROW_NUMBER() OVER (ORDER BY id) AS row_num FROM employees;
והכל עובד. אבל ההזדמנות כאן היא דווקא לשים לב למילה window function ולשאול מה זה פונקציית חלון, מה זה OVER, איך מייצרים חלונות ואיזה עוד פונקציות חלון קיימות. ה AI יודע לענות על כל השאלות האלה וממילא המידע גם זמין בחינם ברשת. החוכמה היא לשים לב ולחפש.