我想制作一份报告,显示不同任务的平均成绩。
我在如何获得平均值方面遇到了麻烦。我需要弄清楚如何将等级转换成浮点数,以便我可以取平均值。等级有时具有非数字或空值,但大多数值看起来像" 2.0"或" 3.5"。我可以排除任何非数字的东西。
这是我到目前为止所做的:
Select
GradingScores.task As task,
Avg(Cast((SELECT GradingScores.score WHERE GradingScores.score LIKE '%[^0-9]%')As float)) As averages
From
GradingScores
我使用的是FlySpeed SQL查询。
答案 0 :(得分:1)
您可以尝试使用IsNumeric
Select
GradingScores.task As task,
Avg(Cast(GradingScores.score as float) As averages
From
GradingScores where IsNumeric(GradingScores.score) = 1
答案 1 :(得分:1)
只需转换()并在T-SQL中使用isnumeric()函数
var theQuery = 'declare @rowsPerPage as bigint; '+
'declare @pageNum as bigint;'+
'set @rowsPerPage='+rowsPerPage+'; '+
'set @pageNum='+page+'; '+
'With SQLPaging As ( '+
'Select Top(@rowsPerPage * @pageNum) ROW_NUMBER() OVER (ORDER BY ID asc) '+
'as resultNum, * '+
'FROM myTableName)'+
'select * from SQLPaging with (nolock) where resultNum > ((@pageNum - 1) * @rowsPerPage);';
sequelize.query(theQuery)
.spread(function(result) {
console.log("Good old paginated results: ", result);
});
});
答案 2 :(得分:0)
这对我有用:
SELECT AVG(CAST(columnName AS FLOAT)) FROM tableName;