Bagaimana cara menghitung jumlah pekerjaan yang ditinjau per jam per hari untuk bulan November 2020?

pemrograman


Sepertinya pertanyaan ini benar-benar sangat membingungkan saya.

-job_id: pengidentifikasi unik pekerjaan
-actor_id: pengidentifikasi unik aktor
-acara: keputusan/lewatkan/transfer
-bahasa: bahasa konten
-time_spent: waktu yang dihabiskan untuk meninjau pekerjaan dalam hitungan detik
-org: organisasi aktor,
-ds: tanggal dalam format tttt/bb/hh. Itu disimpan dalam bentuk teks dan kami menggunakan presto untuk menjalankannya. tidak perlu fungsi tanggal

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 bahasa acara time_spent org
————————————————— —————-
30-11-2020 21 1001 lewati bahasa Inggris 15 A
30-11-2020 22 1006 transfer arab 25 B
29-11-2020 23 1003 keputusan Persia 20 C
28-11-2020 23 1005 transfer Persia 22 D
28-11-2020 25 1002 keputusan No 11 B
27-11-2020 11 1007 keputusan Perancis 104 D
26-11-2020 23 1004 lewati Persia 56 A
25-11-2020 20 1003 transfer Italia 45 C

Dan inilah tabel yang harus kita hitung. Hal-hal yang perlu diperhatikan:
Apa maksud dari acara tersebut? Apa yang perlu dipertimbangkan untuk ditinjau?

Apa yang saya coba:

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

Solusi 1

Anda tidak bisa: data Anda tidak berisi stempel waktu apa pun yang memungkinkan Anda mengidentifikasi waktu peninjauan pekerjaan, dan karena “per jam per hari” adalah persyaratan tanpa informasi tersebut, Anda tidak dapat melakukan apa pun untuk memenuhinya dia.

Saya curiga desain data Anda cacat – yang berarti data Anda tidak berguna untuk tugas ini – atau tugas tersebut dinyatakan dengan buruk dan Anda harus kembali ke siapa pun yang memberikannya kepada Anda dan memperjelas persyaratan sebenarnya, sebaiknya dengan contoh masukan dan keluaran data.

Solusi 2

ini berfungsi dengan baik di MYSQL, asalkan datanya mungkin tidak lengkap, tapi inilah yang saya lakukan dengan harapan ini akan berhasil untuk beberapa proyek dll!!

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


KELUARAN DI MYSQL

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をコピーしました