Mysql 寻找平均最高工资
编写一个查询,使用给定的表查找所有销售人员中最高的平均销售额Mysql 寻找平均最高工资,mysql,sql,Mysql,Sql,编写一个查询,使用给定的表查找所有销售人员中最高的平均销售额 Table: Sales Field Type InvoiceNo Integer SalesPerson Text TotalSale Integer 样品 InvoiceNo SalesPerson TotalSale 1 Acheson 50 2 Bryant 25 3 Bennett 250 4
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
我尝试使用:从Sales中选择MAX(TotalSale)
。我的样本测试用例输出是250,但在一个在线法官的裁决中给出了错误的答案。
另外,当我将查询更改为:selectmax(TotalSale*1.0000)fromsales
时,我得到了示例测试用例的正确答案,但对于其他测试用例仍然是错误的答案
这里的平均数是什么意思?问题应该是什么
此外,这不是来自任何正在进行的竞争。这是一个您可以在此处尝试的实践测试:平均销售额将使用
avg()
函数:
select salesperson, avg(totalsale) as avg_totalsale
from sales
group by salesperson;
平均值的最大值可以使用按顺序
和限制
获得:
select avg(totalsale) as avg_totalsale
from sales
group by salesperson
order by avg_totalsale desc
limit 1;
1.首先,您必须使用AVG函数计算每个销售人员的平均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
下面是另一个答案:
select avg(TotalSale)
from Sales
group by SalesPerson
order by totalSale desc limit 1;
输出:
avg(TotalSale)
250.0000
输出:
MaxtTotal
250.0000
对@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;
以上部分将限制小数点后零位最多为4。将250.00000000转换为250.0000我是SQL新手。你介意我解释一下这些吗?为什么您按销售人员分组,而不是发票否或总销售额?极限1的作用是什么?@RizwanAnsari。阅读问题并思考SQL。因为您的任务告诉您在所有销售人员中找到最大平均销售额。同一个人有多条记录,但它们的InvoiceNo不同,因此不能按InvoiceNo分组,因为没有具有相同InvoiceNo的记录,因此将不会进行分组。唯一不变的是销售人员的价值。这部分是正确的。最好的答案是Vikas Garg的,应该在顶部。这个答案似乎与另一个答案相同。重复其他答案中的信息是没有用的,只是杂乱无章。对旧问题和已回答问题的新答案应该为主题添加新信息和新见解。这项工作非常有效,应该处于最佳位置。向上投票。
SELECT max(avgsale.TotalSale)
FROM (Select Cast(Round(Avg(TotalSale),2) as dec(10,4)) 'TotalSale' from Sales
GROUP BY salesPerson) avgsale
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))