, пока я практикую mysql в codewars, этот запрос запутывает, потому что я не могу найти значения ::numeric
и ::text
в этой очереди.
ouery: -
В бейсболе средний уровень ватина - это простой и наиболее распространенный способ измерения производительности нападающего. Среднее значение ватина рассчитывается путем взятия всех ударов игроков и деления его на их число at_bats, и обычно оно отображается в виде трехзначного десятичного числа (то есть 0,300).
Учитывая таблицу янки со следующей схемой,
player_id STRING
player_name STRING
primary_position STRING
игры INTEGER
at_bats INTEGER
хиты INTEGER
возвращает таблицу с player_name
, games
и batting_average
.
Мы хотим, чтобы batting_average
было округлено до тысячных долей, поскольку именно так привыкли видеть его любители бейсбола. Отформатируйте его как текст и убедитесь, что он содержит 3 цифры справа от десятичной дроби (в случае необходимости необходимо заполнить нулями).
Затем закажите нашу результирующую таблицу на batting_average
с самым высоким средним значением в первой строке.
Наконец, поскольку batting_average
является статистикой тарифов, небольшое число at_bats
может значительно изменить среднее значение. Чтобы исправить это, исключите любого игрока, у которого нет летучих мышей как минимум 100.
Таблица ожидаемых выходных данных
player_name STRING
игры INTEGER
batting_average STRING
решение по codewars: -
select player_name,
games,
round(hits::numeric / at_bats, 3)::text as batting_average
from yankees
where at_bats > 100
order by 3 desc