【发布时间】:2023-03-31 10:21:01
【问题描述】:
我想在一个状态(在本例中为“isDriving”)找到每个驱动程序 ID 的百分比。这是我的数据集:
(id, duration, state, driverid) VALUES ('1', '3000', 'isDriving', 'b65');
(id, duration, state, driverid) VALUES ('1', '2500', 'isDriving', 'b65');
(id, duration, state, driverid) VALUES ('1', '500', 'isIdling', 'b65');
(id, duration, state, driverid) VALUES ('1', '5500', 'isIdling', 'b65');
(id, duration, state, driverid) VALUES ('1', '300', 'isDriving', 'b34');
(id, duration, state, driverid) VALUES ('1', '200', 'isIdling', 'b34');
(id, duration, state, driverid) VALUES ('1', '200', 'isDriving', 'b15');
(id, duration, state, driverid) VALUES ('1', '500', 'isIdling', 'b15');
我试过这个查询:
select driverid,
(sum(duration) / (select sum(duration) from table_name1 group by driverid)) * 100 as percent
from table_name1
where state='isDriving'
group by driverid
我希望输出是这样的:
------------------
driverid percent |
------------------
b65 50 |
b34 60 |
b15 28.6 |
但告诉我:子查询返回超过 1 行
【问题讨论】: