如何在SQL中计算特定列

时间:2018-11-01 18:46:07

标签: sql

如何计算哪个ID支付的平均费用最高?

我尝试了这个,但是我只在查询中得到,而不是两个:

select stelltan 
from hilfsarbeiter 
group by stelltan, arbeiternr 
HAVING avg(lohn) >= all (SELECT avg(lohn) 
                         from hilfsarbeiter 
                         group by stelltan, arbeiternr)

1 个答案:

答案 0 :(得分:0)

您可能希望为一组“ id”(lohn)计算stelltan的平均值。一旦我们计算出每个“ id”的平均值;我们只需要按照“平均已付款”值对结果集进行降序排序,并使用Limit 1

来考虑平均值最高的“ id”
SELECT stelltan, AVG(lohn) AS average_paid  
FROM hilfsarbeiter 
GROUP BY stelltan 
ORDER BY average_paid DESC LIMIT 1

cannot use Limit起,我们可以修改您现有的尝试(基于子查询的方法):

SELECT stelltan 
FROM hilfsarbeiter 
GROUP BY stelltan 
HAVING AVG(lohn) >= ALL (SELECT AVG(lohn) 
                         FROM hilfsarbeiter 
                         GROUP BY stelltan)