Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何使用';分组依据';在子查询中?_Sql_Group By_Subquery - Fatal编程技术网

Sql 如何使用';分组依据';在子查询中?

Sql 如何使用';分组依据';在子查询中?,sql,group-by,subquery,Sql,Group By,Subquery,我想找到一种状态下每个driverid的百分比(在本例中为“isDriving”)。这是我的数据集: (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

我想找到一种状态下每个driverid的百分比(在本例中为“isDriving”)。这是我的数据集:

(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行的条件聚合:

select 
  driverid,
  round(100.0 * sum(case when state = 'isDriving' then duration else 0 end) / sum(duration), 1) percent    
from tablename
group by driverid;
请参阅。
结果:

| driverid | percent |
| -------- | ------- |
| b15      | 28.6    |
| b34      | 60      |
| b65      | 47.8    |