سؤال

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

delimiter |
CREATE TRIGGER checkAge BEFORE INSERT ON People
FOR EACH ROW BEGIN
    IF AVG(age) > 50 THEN
      SET NEW.age = 20;
    END IF;
END
|
delimiter ;

ما الخطأ الذي افعله؟

هل كانت مفيدة؟

المحلول

أنت تحسب متوسط ​​قيمة واحدة فقط (لكل صف) من الأفضل استخدام Select AVG (العمر) من الأشخاص

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top