如何以百分比

时间:2016-10-26 14:39:34

标签: sql-server tsql

我想从数据库中提取报告,目前有一列显示分数。如何将分数转换为%数?

理论上它很容易,但由于我不是SQL导出,所以不是。

我试过

select [userid], [QuestionsTotal] / 100 * [QuestionsCorrect] as 'score'
   FROM myTable

我也试过

select [userid], [QuestionsTotal] / [QuestionsCorrect] * 100.0  as 'score'
FROM myTable

有人能给我一些关于我如何解决问题的提示吗?

2 个答案:

答案 0 :(得分:2)

我假设您的正确和总计是INT。注意* 100.0 - .0对于将至少一个因子转换为INT以外的其他因素非常重要。

select [userid]
     , ([QuestionsCorrect]*100.0) / [QuestionsTotal]  as 'score'
   FROM myTable

答案 1 :(得分:0)

以下是我使用的另一种实现此结果的方法(可用于SUM,COUNT,AVG ..):

 Select Category as 'Category', COUNT(Category) as 'Count' , 

    CAST(COUNT(Category) as DECIMAL(10,4)) /  SUM(COUNT(Category) ) OVER () * 100 '% Allocation'

    from Category