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

كيفية ترتيب العملاء في MySQL باستخدام المتغيرات ووظائف النوافذ؟

نشر في 2025-02-06
تصفح:712

How to Rank Customers in MySQL Using Variables and Window Functions?

شرح مفصل لطريقة ترتيب عملاء MySQL

]

تعيين التصنيفات بناءً على معايير محددة مهمة مشتركة عند معالجة بيانات العميل. يوفر MySQL عدة طرق لتحقيق هذا الهدف.

طريقة واحدة هي استخدام متغيرات الترتيب ، كما هو موضح في الاستعلام التالي:

SELECT    first_name,
          age,
          gender,
          @curRank := @curRank   1 AS rank
FROM      person p, (SELECT @curRank := 0) r
ORDER BY  age;

هنا ، تتم تهيئة المتغير currank إلى 0 ثم يتم زيادة لكل صف في الجدول. هذا يسمح لنا بتعيين تصنيفات بناءً على عصر عملائنا.

طريقة أخرى تتمثل في استخدام وظيفة ROW_Number () ، والتي تُرجع رقم طلب فريد لكل صف في القسم. يوضح الاستعلام التالي استخدامه:

SELECT    first_name,
          age,
          gender,
          ROW_NUMBER() OVER (PARTITION BY gender ORDER BY age) AS rank
FROM      person;

في هذا الاستعلام ، تقوم وظيفة ROW_Number () بتعيين تصنيفات داخل كل قسم بين الجنسين ، مما يتيح لنا تصنيف العملاء بناءً على عمر كل جنس.

أخيرًا ، يمكن استخدام وظيفة Dense_rank () لتعيين تصنيفات غير مجدية. إنه يتخطى التصنيفات التي كان سيتم تعيينها لتكرار القيم. يوضح الاستعلام التالي استخدامه:

SELECT    first_name,
          age,
          gender,
          DENSE_RANK() OVER (PARTITION BY gender ORDER BY age) AS rank
FROM      person;

عن طريق اختيار وظيفة التصنيف المناسبة ، يمكن للمطورين تعيين تصنيفات بفعالية لبيانات العميل في MySQL لأغراض تحليلية مختلفة.

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

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

Copyright© 2022 湘ICP备2022001581号-3