"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف تحصل على أحدث قيمة لكل مجموعة بناءً على الطابع الزمني في Oracle SQL؟

كيف تحصل على أحدث قيمة لكل مجموعة بناءً على الطابع الزمني في Oracle SQL؟

نشر في 2025-04-13
تصفح:499

How to Retrieve the Latest Value for Each Group Based on Timestamp in Oracle SQL?

استخراج أحدث الإدخالات لكل مجموعة في Oracle SQL

يوضح هذا البرنامج التعليمي مهمة قاعدة بيانات مشتركة: استرداد أحدث سجل لكل مجموعة استنادًا إلى الطابع الزمني. سنستخدم جدولًا يحتوي على معرفات ، طابع زمني ، والكميات كمثال.

تحدي:

أعطيت جدولًا يحتوي على معرف ، وخط الطابع ("التاريخ") ، والأعمدة ("الكمية") ، كيف نختار بكفاءة أحدث كمية (وخط الطابع الزمني المرتبط بها) لكل معرف فريد؟

حل:

يمكن تحقيق ذلك باستخدام النهج التالي:

  1. الترتيب حسب الطابع الزمني: قم بتعيين ترتيب لكل صف داخل كل مجموعة هوية ، تم طلبها بواسطة Timestamp في ترتيب تنازلي.
  2. تحديد صفوف أعلى: تصفية النتائج لتضمين الصفوف فقط مع أعلى رتبة لكل معرف. تمثل هذه الصفوف أحدث الإدخالات.

يتبع استعلام Oracle SQL هذا الحل:

SELECT x.id, x."date", x.quantity
FROM (
    SELECT
        id,
        "date",
        RANK() OVER (PARTITION BY id ORDER BY "date" DESC) AS rnk,
        quantity
    FROM qtys
) x
WHERE x.rnk = 1;

تمديد الاستعلام:

يمكن تكييف هذا الاستعلام الأساسي لتلبية احتياجات أكثر تعقيدًا:

  • تصفية قائمة على الوقت: أضف A حيث بند إلى الاستعلام الداخلي لتقييد النتائج إلى فترة زمنية محددة.
  • الانضمام مع الجداول الأخرى: دمج البيانات من جداول إضافية عن طريق الانضمام إلى العمود معرف . على سبيل المثال ، يمكنك الانضمام إلى جدول يحتوي على معرف واسم لتضمين أسماء في الإخراج.

توفر هذه الطريقة طريقة قوية وفعالة لاسترداد أحدث القيم لكل مجموعة استنادًا إلى طابع زمني في Oracle SQL ، قابلة للتطبيق على مختلف مهام تحليل البيانات ومهام المعالجة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3