בחר את הרשומה האחרונה לפי תאריך ב-SQL

Bhr T Hrswmh H Hrwnh Lpy T Ryk B Sql



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

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

נתונים לדוגמה

למטרות הדגמה, אנו משתמשים במסד הנתונים לדוגמה של Sakila הזמין עבור טעמי MySQL ו-PostgreSQL.







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



דוגמה 1: הזמנה לפי

השיטה הבסיסית והפשוטה ביותר שאנו יכולים להשתמש בה כדי לאחזר את הרשומה העדכנית ביותר לפי תאריך היא להשתמש בסעיף SQL ORDER BY.



נוכל לסדר את הרשומות בסדר יורד על סמך ערך התאריך ולאחר מכן להגביל את התוצאה לשורה אחת בלבד.





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

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



בחר *

מהשכרה

להזמין בתאריך rental_date DESC

לְהַגבִּיל 1 ;

במקרה זה, אנו משתמשים בסעיף ORDER BY ומעבירים את ה-'rental_date' כעמודת היעד. אנו גם מקפידים לומר למסד הנתונים לסדר את הרשומות בסדר יורד.

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

דוגמה 2: שימוש בפונקציה Max()

האם ידעת שאנחנו יכולים להשתמש בפונקציה max() על ערכי תאריך? כן, אנו יכולים להשתמש בשאילתת משנה פשוטה של ​​SQL ובפונקציה max() על ערכי תאריך כדי לאחזר את הרשומה העדכנית ביותר מטבלה נתונה.

שקול את הדוגמה הבאה:

בחר *

מהשכרה

WHERE rental_date = (בחר MAX(rental_date) FROM השכרה);

שימוש בשאילתת המשנה מוצא את תאריך ההשכרה המקסימלי מהטבלה. בשאילתה הראשית, עלינו להביא את הרשומות עם 'תאריך_השכרה' השווה לתאריך המקסימלי.

דוגמה 3: פונקציות חלון

עבור מסדי נתונים התומכים בפונקציות החלון, אנו יכולים להשתמש בפונקציית שאילתת משנה ובפונקציה row_number() כדי לאחזר את הרשומה העדכנית ביותר מהטבלה באופן הבא:

בחר *

מ (

בחר *,

ROW_NUMBER() מעל ( להזמין BY rental_date DESC) AS rn

מהשכרה

) שאילתת משנה AS

WHERE rn = 1 ;

בדוגמה הנתונה, שאילתת המשנה מקצה מספר שורה לכל שורה בהתבסס על העמודה 'תאריך_השכרה' בסדר יורד באמצעות פונקציית החלון ROW_NUMBER().

לאחר מכן, השאילתה החיצונית בוחרת את כל העמודות משאילתת המשנה שבהן מספר השורה הוא 1, ולמעשה בוחרת את רשומת ההשכרה העדכנית ביותר.

סיכום

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