كيف يمكننا حساب عدد الوظائف التي تتم مراجعتها في الساعة يوميًا لشهر نوفمبر 2020؟


مثل هذا السؤال هو حرفيا مربكا للغاية بالنسبة لي.

-job_id: المعرف الفريد للوظائف
-actor_id: المعرف الفريد للممثل
-الحدث: قرار/تخطي/نقل
-اللغة: لغة المحتوى
-time_spent: الوقت المستغرق لمراجعة المهمة بالثواني
-org: تنظيم الفاعل،
-ds: التاريخ بتنسيق yyyy/mm/dd. يتم تخزينه في شكل نص ونستخدم المعزوفة للتشغيل. لا حاجة لوظيفة التاريخ

CREATE TABLE job_data
(
	ds DATE,
    job_id INT NOT NULL,
    actor_id INT NOT NULL,
    event VARCHAR(15) NOT NULL,
    language VARCHAR(15) NOT NULL,
    time_spent INT NOT NULL,
    org CHAR(2)
);

ds job_id actor_id لغة الحدث time_spent org
————————————————– —————-
2020-11-30 21 1001 تخطي الانجليزية 15 أ
2020-11-30 221006 نقل عربي 25 ب
2020-11-29 23 1003 قرار فارسي 20 ج
2020-11-28 23 1005 نقل فارسي 22 د
2020-11-28 25 1002 قرار رقم 11 ب
2020-11-27 11 1007 قرار فرنسي 104 د
2020-11-26 23 1004 تخطي الفارسية 56 أ
2020-11-25 201003 نقل ايطالي 45 ج

وهذا هو الجدول الذي علينا العد منه. النقاط التي يجب مراعاتها:
ماذا يعني الحدث؟ ما الذي يجب مراعاته للمراجعة؟

ما حاولت:

SELECT COUNT(*) AS no_of_job, ds AS dates 
FROM job_data 
GROUP BY ds 
ORDER BY no_of_job DESC;

الحل 1

لا يمكنك ذلك: لا تحتوي بياناتك على أي طابع زمني يسمح لك بتحديد الوقت من اليوم الذي تمت فيه مراجعة الوظيفة، وبما أن “لكل ساعة في اليوم” يعد مطلبًا بدون هذه المعلومات، فلا يوجد شيء يمكنك القيام به للوفاء به هو – هي.

أظن أن تصميم بياناتك معيب – مما يعني أن بياناتك غير مجدية لهذه المهمة – أو أن المهمة محددة بشكل سيء ويجب عليك الرجوع إلى من أعطاها لك والحصول على توضيح المتطلبات الدقيقة، ويفضل أن يكون ذلك مع نموذج الإدخال والإخراج بيانات.

الحل 2

يعمل هذا بشكل جيد في MYSQL، بشرط أن تكون البيانات غير مكتملة، ولكن إليك ما فعلته على أمل أن ينجح في بعض المشاريع وما إلى ذلك !!

SQL
SELECT ds AS Dated, COUNT(job_id) AS job_review_counts,  ROUND(COUNT(job_id)/(SUM(time_spent)/(60*60)),2) AS job_review_per_hour_each_day  
FROM job_data
WHERE ds BETWEEN '01-11-2020' AND '30-11-2020'
GROUP BY ds 
ORDER BY ds


الإخراج في ماي إس كيو إل

25/11/2020 1 80.00
26/11/2020 1 64.29
27/11/2020 1 34.62
28/11/2020 2 218.18
29/11/2020 1 180.00
30/11/2020 2 180.00

コメント

タイトルとURLをコピーしました