SELECT CAST(SUM(CASE WHEN MARK>=90 THEN 1 END) AS DECIMAL(18,4))/COUNT(1)[优秀] ,CAST(SUM(CASE WHEN MARK<90 AND MARK>=80 THEN 1 END) AS DECIMAL(18,4))/COUNT(1)[良好] ,CAST(SUM(CASE WHEN MARK<80 AND MARK>=60 THEN 1 END) AS DECIMAL(18,4))/COUNT(1)[及格] FROM tmp_xrkh_1
谢谢,用cast as decimal 是我没想到的,但是我运行的时候报错了,这个[ ]是无法识别的,但还是非常感谢你!
SELECT CAST(SUM(CASE WHEN MARK>=90 THEN 1 END) AS DECIMAL(18,4))/COUNT(1)[优秀]
,CAST(SUM(CASE WHEN MARK<90 AND MARK>=80 THEN 1 END) AS DECIMAL(18,4))/COUNT(1)[良好]
,CAST(SUM(CASE WHEN MARK<80 AND MARK>=60 THEN 1 END) AS DECIMAL(18,4))/COUNT(1)[及格]
FROM tmp_xrkh_1