如何在 SQL 中获取列中的值比列平均值高 20% 的行?

问题描述 投票:0回答:1

因此,我正在编写一个 SQL 教程,该教程要求找到受损驾驶员比例比所有州平均水平高 20% 的州。百分比以0-100之间的百分点表示。

我写了以下查询:

SELECT state, percent_alcohol_impaired 
FROM playground.bad_drivers
WHERE percent_alcohol_impaired - 20 >
        (SELECT AVG(percent_alcohol_impaired)
         FROM playground.bad_drivers)
LIMIT 100

教程没有执行我的查询。这不是让各州高于平均水平的好方法(或者有更好的方法)吗?短暂性脑缺血发作。

sql subquery average
1个回答
0
投票
SELECT state, percent_alcohol_impaired  
FROM playground.bad_drivers 
WHERE percent_alcohol_impaired > 1.2 * (SELECT AVG(percent_alcohol_impaired) FROM playground.bad_drivers) 
LIMIT 100;

您应该将平均百分比乘以 1.2,发现比平均值高 20%,然后将其与每个州受损驾驶员的百分比进行比较。

© www.soinside.com 2019 - 2024. All rights reserved.