寻找平均最高工资

新手上路,请多包涵

使用给定表编写查询以查找所有销售人员中最高的平均销售额。

 Table: Sales

Field       Type
InvoiceNo   Integer
SalesPerson Text
TotalSale   Integer

样本

InvoiceNo   SalesPerson  TotalSale
1           Acheson      50
2           Bryant       25
3           Bennett      250
4           Acheson      50
5           Bryant       100
6           Bennett      250

样本输出

max(totalsale)
250.0000

我尝试使用: SELECT MAX(TotalSale) FROM Sales 。我的示例测试用例输出为 250,但在线法官给出了错误的答案判决。另外,当我将查询更改为: SELECT MAX(TotalSale*1.0000) FROM Sales 时,我得到了示例测试用例的正确答案,但对于其他测试用例仍然错误答案。

这里的平均是什么意思?查询应该是什么?

此外,这不是来自任何正在进行的竞争。它来自您可以在此处尝试的练习测试: https ://www.hackerearth.com/challenge/test/kredx-data-analyst-test/

原文由 I_Love_Islam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 883
2 个回答

1.首先,您必须使用 AVG 函数计算每个 SalesPerson 的平均 TotalSale

 SELECT SalesPerson, AVG(TotalSale) AS 'TotalSale'
FROM Sales
GROUP BY SalesPerson

2.从上面查询生成的表中找出最大值。

 SELECT MAX(avgSales.TotalSale)
FROM (SELECT AVG(TotalSale) AS 'TotalSale' FROM Sales GROUP BY SalesPerson) AS avgSales

原文由 Andreea Nica 发布,翻译遵循 CC BY-SA 4.0 许可协议

对@gordon-linoff 的答案进行了细微更改以通过示例测试用例。

 select CAST(avg(totalsale) AS DECIMAL(16,4)) as avg_totalsale
from sales
group by salesperson
order by avg_totalsale desc
limit 1;

 CAST(avg(totalsale) AS DECIMAL(16,4))

以上部分将限制小数位的零最多为 4。将 250.00000000 转换为 250.0000

原文由 bhavya_karia 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题