Я пытаюсь получить процент немецких клиентов в таблице клиентов здесь: https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all
Я использую этот запрос:
SELECT cast((cast((SELECT COUNT(*) FROM Customers WHERE Country = "Germany") as DECIMAL(5,2))/cast((SELECT COUNT(*) FROM Customers) as DECIMAL(5,2))) AS DECIMAL(5,2)) AS PercentageGermans;
По какой-то причине мне все равно возвращается 0, несмотря на приведение всех составляющих терминала к десятичному виду 5,2.
Я уже искал SO на topi c и нашел этот ответ: { ссылка }
Здесь приведение, которое я пытаюсь выполнить, выполняется примерно так же, как и я:
cast((select count(random_int) from test) as decimal(7,2))
Приведение применяется ко всему подзапросу. Там это работает, что тоже видно на скрипке: http://sqlfiddle.com/#! 15/63252/37
Но я не понимаю, что не так в моем случае.