استرجاع السجلات الأولى والأخيرة للبيانات المجمعة باستخدام الوظائف المجمعة في MySQL
في MySQL، عند جلب البيانات من السجلات المجمعة باستخدام الوظائف المجمعة، قد يكون من الصعب استرداد السجلات الأولى والأخيرة للمجموعة. على الرغم من أن الاستعلامات المتعددة يمكنها تحقيق ذلك، إلا أنها قد تكون غير فعالة بالنسبة للجداول الكبيرة.
لتحسين هذه العملية، توفر MySQL حلاً أكثر كفاءة باستخدام وظائف GROUP_CONCAT وSUBSTRING_INDEX .
باستخدام GROUP_CONCAT و SUBSTRING_INDEX
باستخدام هذه الوظائف معًا، يمكنك ربط القيم من المجموعة ثم استخراج القيم الأولى والأخيرة باستخدام SUBSTRING_INDEX. وإليك الطريقة:
SUBSTRING_INDEX(GROUP_CONCAT(CAST(open AS CHAR) ORDER BY datetime), ',', 1) AS open SUBSTRING_INDEX(GROUP_CONCAT(CAST(close AS CHAR) ORDER BY datetime DESC), ',', 1) AS close
كيف يعمل:
مثال:
خذ بعين الاعتبار الاستعلام التالي:
SELECT MIN(low_price), MAX(high_price), SUBSTRING_INDEX(GROUP_CONCAT(CAST(open AS CHAR) ORDER BY datetime), ',', 1) AS open, SUBSTRING_INDEX(GROUP_CONCAT(CAST(close AS CHAR) ORDER BY datetime DESC), ',', 1) AS close FROM symbols WHERE date BETWEEN(.. ..) GROUP BY YEARWEEK(date)
يسترد هذا الاستعلام بشكل فعال السجلات الأولى (المفتوحة) والأخيرة (المغلقة) لكل مجموعة، مما يقلل من وقت المعالجة للجداول الكبيرة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3