我有以下代碼。正在顯示3位小數,但平均值是錯誤的。有沒有一種方法可以重構代碼以實現正確的結果?如何獲得平均值3位小數
with total_indi_days as
(
SELECT COUNT(*) AS total, DATENAME(DW, DateLog) AS NameOfDay
FROM Access
GROUP BY DATENAME(DW, DateLog)
--ORDER BY total DESC
)
,total_overall_days as
(
SELECT COUNT(*) as total_days FROM Access
)
select str(((total * 100)/ total_days), 7, 3) as average, total, total_days, NameOfDay
from total_indi_days, total_overall_days
結果...
|average | total | total_days | NameOfDay
| 2.000 | 29 | 1000 | Sun
| 18.000 | 188 | 1000 | Mon
| 15.000 | 159 | 1000 | Tues
| 20.000 | 207 | 1000 | Wed
| 19.000 | 194 | 1000 | Thur
| 17.000 | 171 | 1000 | Fri
| 5.000 | 52 | 1000 | Sat
應該是...
|average | total | total_days | NameOfDay
| 2.900 | 29 | 1000 | Sun
| 18.800 | 188 | 1000 | Mon
| 15.900 | 159 | 1000 | Tues
| 20.700 | 207 | 1000 | Wed
| 19.400 | 194 | 1000 | Thur
| 17.100 | 171 | 1000 | Fri
| 5.200 | 52 | 1000 | Sat
我也想知道是否有一個更簡單的方法來得到這樣的結果。 「with」有點多,考慮到我有AVG內置的功能,這對我來說並不適用,也許是因爲我做錯了事情。
你爲什麼要用MySQL *和* SQL-Server?你在使用哪一個? – FrustratedWithFormsDesigner 2011-05-12 14:43:40
@FrustratedWithFormsDesigner - 對不起... – MrM 2011-05-12 14:48:12