输出应为
totalsales
250.0000
代码:
select cast(max (totalsales) as float())
from (select SalesPerson, avg(TotalSale) AS totalsales
from Sales
group by SalesPerson);
当前输出为250.0需要250.0000
TotalSale数据类型为整数
表销售额:
InvoiceNo SalesPerson TotalSale
1 Acheson 50
2 Bryant 25
3 Bennett 250
4 Acheson 50
5 Bryant 100
6 Bennett 250
答案 0 :(得分:3)
我认为您可能会在查询工具中看到的内容与查询的数字数据类型结果之间感到困惑。如果希望输出具有特定外观,请对其进行格式化:
SELECT TO_CHAR(250, 'fm9D0000')
如果您想要一个特定的数据类型,则将其强制转换(您似乎知道如何做到),但不要以为它看起来特别特别
如果您使用前端编程语言处理数据,请不要使用数据库对其进行格式化;从oracle以数字方式提取它,并在前端对其进行格式化
答案 1 :(得分:1)
您正在使用哪个客户端程序?
如果SQL*Plus
,请尝试:
set numformat 999.9999
,然后重新运行您的SQL
语句。
如果还有其他问题,您将必须弄清楚如何在该客户端中格式化输出,并以所需的格式打印答案。
希望有帮助。
答案 2 :(得分:0)
要获得正确的平均值,我认为您应该转换列值
SELECT TO_CHAR(MAX(totalsales), ‘0D0000’)
FROM (SELECT SalesPerson, AVG(CAST(TotalSale AS FLOAT)) AS totalsales
FROM Sales
GROUP BY SalesPerson);
答案 3 :(得分:0)
select to_char(value, '999.9999') from totalsales
为我工作。