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

كيف تجد أقدم شخص في كل مجموعة في SQL؟

نشر في 2025-03-04
تصفح:334

How to Find the Oldest Person in Each Group in SQL?

استرداد السجلات المرتبة الأعلى بكفاءة في بيانات SQL المجمعة

يوضح هذا المثال كيفية تحديد أقدم شخص داخل كل مجموعة في جدول SQL ، مع الأخذ في الاعتبار الترتيب الأبجدي لحل العلاقات. يتضمن هيكل الجدول أعمدة "شخص" و "مجموعة" و "عصر":

مثال على الجدول:

شخص مجموعة عمر
بوب 1 32
Jill 1 34
Shawn 1 42
Jake 2 29
بول 2 36
Laura 2 39

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

SQL Solution:

SELECT o.*
FROM Persons o
LEFT JOIN Persons b ON o.Group = b.Group AND (o.Age  b.Person))
WHERE b.Person IS NULL;

توضيح:

يستخدم هذا الاستعلام ترك الانضمام لمقارنة كل شخص ( o ) مع جميع الآخرين في نفس المجموعة ( b ). The على ، مرشحات الفقرة للصفوف حيث إما:

  1. o.age : o أصغر من b (المعنى o ليس الأقدم).
  2. o.age = b.age و o.person> b.person : o هو نفس عمر b ، ولكنه أبجديًا لاحقًا (يعني
  3. The
حيث يكون B.Person خاليًا

يقوم بتصفية أي صفوف من o التي كانت تتطابق مع b ، مما يترك فقط أقدم شخص (أو أبجديًا أولاً إذا كان هناك ربطة عنق) في كل مجموعة. استكشاف إضافي:

من أجل فهم أكثر شمولاً لتقنيات SQL المتقدمة والمخاطر المحتملة ، راجع موارد مثل "SQL antepatterns Volume 1: تجنب المزالق لبرمجة قاعدة البيانات."

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

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

Copyright© 2022 湘ICP备2022001581号-3