使用给定的表格编写查询以查找所有销售人员中最高的平均销售额。
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/
答案 0 :(得分:2)
1。首先,您必须使用 AVG 函数计算每个 SalesPerson 的平均 TotalSale 。
string.Join()
2。从上述查询生成的表中找出最大值。
private void button1_Click(object sender, EventArgs e)
{
if(string.IsNullOrWhiteSpace(textBox1.Text)) return;
if(textBox1.Text[0] == 'a')
{
textBox2.Text = "Error";
return;
}
textBox2.Text = string.Join(" ", textBox1.Text.ToCharArray());
}
答案 1 :(得分:1)
平均销售将使用avg()
函数:
select salesperson, avg(totalsale) as avg_totalsale
from sales
group by salesperson;
可以使用order by
和limit
获得平均值的最大值:
select avg(totalsale) as avg_totalsale
from sales
group by salesperson
order by avg_totalsale desc
limit 1;
答案 2 :(得分:0)
这是回答这个问题的另一种方式:
select avg(TotalSale)
from Sales
group by SalesPerson
order by totalSale desc limit 1;
输出:
avg(TotalSale)
250.0000
答案 3 :(得分:0)
根据销售人员订单(按MaxTotal desc LIMIT 1)从“销售”组中选择avg(TotalSale)作为MaxTotal
输出:MaxtTotal 250.0000
答案 4 :(得分:0)
SELECT max(avgsale.TotalSale)
FROM (Select Cast(Round(Avg(TotalSale),2) as dec(10,4)) 'TotalSale' from Sales
GROUP BY salesPerson) avgsale
答案 5 :(得分:0)
对@ gordon-linoff的答案进行了少量更改以通过示例测试用例。
sort(prop.table(table(games[,1])), decr = TRUE) # phase 1
# barcelona madrid psg juve mancity mancunited
# 0.1797 0.1787 0.1687 0.1677 0.1663 0.1389
sort(prop.table(table(games[,1])), decr = TRUE) # phase 2
# madrid barcelona juve mancity psg mancunited
# 0.1826 0.1755 0.1691 0.1670 0.1663 0.1395
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