استخدام الوظائف المجمعة داخل المشغل في MySQL
-
20-09-2019 - |
سؤال
لدي جدول "أشخاص" يحتوي على عدة سمات بما في ذلك "العمر".في كل مرة أقوم فيها بإدراج صف جديد في هذا الجدول، أرغب في معرفة متوسط أعمار جميع الأشخاص المدرجين في الجدول.إذا كان المتوسط أعلى من 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 (العمر) من الأشخاص
لا تنتمي إلى StackOverflow