我想把德国客户的百分比放在这里的客户表中: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;
出于某种原因,尽管将term的所有成分都转换为十进制5,2,但仍然返回0。
我已经在这个主题上搜索了这么多,找到了这个答案:https://stackoverflow.com/a/26537471/8732285
在这里,我试着做的演员和我做的差不多:
cast((select count(random_int) from test) as decimal(7,2))
强制转换正在应用于完整子查询。它在那里工作,也可以在小提琴上看到:http://sqlfiddle.com/#!15/63252/37
但我不明白我的案子出了什么问题。
1条答案
按热度按时间w3nuxt5m1#
我想把德国顾客的百分比放在顾客表上。
我想你是太过分了。我将你的问题表述为:
这会给你一个介于
0
以及1
,这代表了德国客户的比例。你可以把它乘以100变成一个百分比。假设你想要一个有两个小数位的百分比,那么: