计算 2020 年 11 月每天每小时审查的工作数量?
Calculate the number of jobs reviewed per hour per day for November 2020?
这个问题真让我费解。他们没有提供足够的细节。无论他们提供什么,我都写在下面。
- job_id:作业的唯一标识符
- actor_id:演员的唯一标识符
- 事件:decision/skip/transfer
- 语言:内容的语言
- time_spent:审阅作业所用时间(秒)
- org:演员的组织
- ds:yyyy/mm/dd 格式的日期。它以文本的形式存储,我们使用presto 运行。不需要日期功能
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)
);
INSERT INTO job_data (ds, job_id, actor_id, event, language, time_spent, org)
VALUES ('2020-11-30', 21, 1001, 'skip', 'English', 15, 'A'),
('2020-11-30', 22, 1006, 'transfer', 'Arabic', 25, 'B'),
('2020-11-29', 23, 1003, 'decision', 'Persian', 20, 'C'),
('2020-11-28', 23, 1005,'transfer', 'Persian', 22, 'D'),
('2020-11-28', 25, 1002, 'decision', 'Hindi', 11, 'B'),
('2020-11-27', 11, 1007, 'decision', 'French', 104, 'D'),
('2020-11-26', 23, 1004, 'skip', 'Persian', 56, 'A'),
('2020-11-25', 20, 1003, 'transfer', 'Italian', 45, 'C');
下面是数据。要考虑的要点:
事件是什么意思?复习要考虑什么?
这是我试过的查询:
SELECT ds, COUNT(*)/24 AS no_of_job
FROM job_data
WHERE ds BETWEEN '2020-11-01' AND '2020-11-30'
GROUP BY ds;
检查以下方法是否是您要查找的方法。
select ds,count(job_id) as jobs_per_day, sum(time_spent)/3600 as hours_spent
from job_data
where ds >='2020-11-01' and ds <='2020-11-30'
group by ds ;
演示 MySQL 5.6
:https://www.db-fiddle.com/f/7yUJcuMJPncBBnrExKbzYz/26
演示 MySQL 8.0.26
:https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=83e89a2ad2a7e73b7ca990ac36ae4df0
评论中@FaNo_FN指出的演示之间的区别是:在MySQL 8.0.26
版本中,如果日期2020-11-31
是用的,因为没有31 Novembre
.
使用 and
条件而不是 between
,它执行得更快。
您需要对当天的 time_spent
求和。
这个问题真让我费解。他们没有提供足够的细节。无论他们提供什么,我都写在下面。
- job_id:作业的唯一标识符
- actor_id:演员的唯一标识符
- 事件:decision/skip/transfer
- 语言:内容的语言
- time_spent:审阅作业所用时间(秒)
- org:演员的组织
- ds:yyyy/mm/dd 格式的日期。它以文本的形式存储,我们使用presto 运行。不需要日期功能
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)
);
INSERT INTO job_data (ds, job_id, actor_id, event, language, time_spent, org)
VALUES ('2020-11-30', 21, 1001, 'skip', 'English', 15, 'A'),
('2020-11-30', 22, 1006, 'transfer', 'Arabic', 25, 'B'),
('2020-11-29', 23, 1003, 'decision', 'Persian', 20, 'C'),
('2020-11-28', 23, 1005,'transfer', 'Persian', 22, 'D'),
('2020-11-28', 25, 1002, 'decision', 'Hindi', 11, 'B'),
('2020-11-27', 11, 1007, 'decision', 'French', 104, 'D'),
('2020-11-26', 23, 1004, 'skip', 'Persian', 56, 'A'),
('2020-11-25', 20, 1003, 'transfer', 'Italian', 45, 'C');
下面是数据。要考虑的要点:
事件是什么意思?复习要考虑什么?
这是我试过的查询:
SELECT ds, COUNT(*)/24 AS no_of_job
FROM job_data
WHERE ds BETWEEN '2020-11-01' AND '2020-11-30'
GROUP BY ds;
检查以下方法是否是您要查找的方法。
select ds,count(job_id) as jobs_per_day, sum(time_spent)/3600 as hours_spent
from job_data
where ds >='2020-11-01' and ds <='2020-11-30'
group by ds ;
演示 MySQL 5.6
:https://www.db-fiddle.com/f/7yUJcuMJPncBBnrExKbzYz/26
演示 MySQL 8.0.26
:https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=83e89a2ad2a7e73b7ca990ac36ae4df0
评论中@FaNo_FN指出的演示之间的区别是:在MySQL 8.0.26
版本中,如果日期2020-11-31
是用的,因为没有31 Novembre
.
使用 and
条件而不是 between
,它执行得更快。
您需要对当天的 time_spent
求和。