استخراج أحدث الإدخالات مع قيم التحقق من غير صفرية من جدول SQL
يوضح هذا الدليل كيفية استرداد السجلات الأحدث بكفاءة لكل مجموعة ، والتصفية لمبالغ الفحص غير الصفر. لنفترض جدولًا منظمًا مثل هذا:
group date cash checks
1 1/1/2013 0 0
2 1/1/2013 0 800
1 1/3/2013 0 700
3 1/1/2013 0 600
1 1/2/2013 0 400
3 1/5/2013 0 200
نهج SQL التالي يحقق هذا:
أولاً ، نجد الحد الأقصى للتاريخ لكل مجموعة حيث تتحقق القيمة
أكبر من الصفر:
SELECT group, MAX(date) AS max_date
FROM table
WHERE checks > 0
GROUP BY group;
هذا ينتج:
group max_date
2 1/1/2013
1 1/3/2013
3 1/5/2013
بعد ذلك ، ننضم إلى هذه النتيجة مرة أخرى إلى الجدول الأصلي لاسترداد الفحص المقابل
المبالغ:
SELECT t.group, t.date AS max_date, t.checks
FROM table t
INNER JOIN (
SELECT group, MAX(date) AS max_date
FROM table
WHERE checks > 0
GROUP BY group
) AS a ON a.group = t.group AND a.max_date = t.date;
ينتج هذا الاستعلام النهائي الإخراج المطلوب:
group max_date checks
2 1/1/2013 800
1 1/3/2013 700
3 1/5/2013 200
ملاحظة مهمة: باستخدام كلمات محفوظة (مثل Date
) حيث يتم تثبيط أسماء الأعمدة بشدة. يمكن أن يؤدي إلى أخطاء SQL بناء جملة ويجعل الكود الخاص بك أكثر صعوبة في الحفاظ عليه. النظر في المزيد من الأسماء الوصفية وغير الواضحة للأعمدة الخاصة بك.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3