Нахождение средней наивысшей зарплаты - PullRequest
0 голосов
/ 08 декабря 2018

Напишите запрос, чтобы найти самые высокие средние продажи среди всех продавцов, использующих данную таблицу.

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/

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

1. Сначала вам нужно вычислить среднее значение TotalSale для каждого SalesPerson , используя функцию AVG .

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
0 голосов
/ 08 декабря 2018

Средняя продажа будет использовать функцию 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...