当前位置:网站首页>SQL Server AVG函数取整问题
SQL Server AVG函数取整问题
2022-06-24 09:40:00 【Cpsu】
SQL Sever的均值函数在求整数类型的数据均值是结果还是整数,并且不会四舍五入。也就是向下取整。这里先创建一个成绩表,并适当添加数据。
CREATE TABLE sic(
学号 nchar(10) not null,
课程号 nchar(10) not null constraint pk_lh primary key(学号,课程号),
成绩 int not null);
INSERT INTO sic
values ('01','01',80),
('01','02',90),
('01','03',99),
('02','02',60),
('02','03',80),
('03','01',80),
('03','02',80),
('03','03',80);

SELECT AVG(成绩) AS 均分
FROM sic
GROUP BY sic.学号

很明显学号为01的学生均分不应该为整数。这里有两个办法可以解决。
第一个就是在创建表的时候就将数据设置为float类型。
ALTER TABLE sic
ALTER COLUMN 成绩 FLOAT NOT NULL;
SELECT sic.学号,AVG(成绩) AS 均分
FROM sic
GROUP BY sic.学号;
#也可以使用DECIMAL(18,2)格式保留两位小数

第二种方法就是利用SQL Server的CAST或者CONVERT函数。
SELECT sic.学号,
AVG(
CAST (成绩 AS FLOAT)
) AS 均分
FROM sic
GROUP BY sic.学号
SELECT CAST(AVG(CONVERT(FLOAT,成绩)) AS DECIMAL(18,2)) AS 均分
FROM sic
GROUP BY sic.学号
边栏推荐
- Ora-16038 ora-19502 ora-00312 troubleshooting
- 编程题(持续更新)
- 桌面软件开发框架大赏
- 2022-06-23:给定一个非负数组,任意选择数字,使累加和最大且为7的倍数,返回最大累加和。 n比较大,10的5次方。 来自美团。3.26笔试。
- 大中型企业如何构建自己的监控体系
- Practical analysis: implementation principle of APP scanning code landing (app+ detailed logic on the web side) with source code
- impdp导schema报ORA-31625异常处理
- MySQL data advanced
- 美国电子烟巨头 Juul 遭遇灭顶之灾,所有产品强制下架
- 顶刊TPAMI 2022!基于不同数据模态的行为识别:最新综述
猜你喜欢
随机推荐
js代理模式
JS singleton mode
415-二叉树(144. 二叉树的前序遍历、145. 二叉树的后序遍历、94. 二叉树的中序遍历)
Basic operations on binary tree
LeetCode: 240. Search 2D matrix II
SQL-统计连续N天登陆的用户
Geogebra instance clock
十大证券公司哪个佣金最低,最安全可靠?有知道的吗
413-二叉树基础
Oracle viewing data file header SCN information
Getting user information for applet learning (getuserprofile and getUserInfo)
ssh远程免密登录
简单的价格表样式代码
In depth study paper reading target detection (VII) Chinese English Bilingual Edition: yolov4 optimal speed and accuracy of object detection
操作符详解
[custom endpoint and implementation principle]
NVIDIA's CVPR 2022 oral is on fire! 2D images become realistic 3D objects in seconds! Here comes the virtual jazz band!
Producer / consumer model
2021-08-17
Array seamless scrolling demo







