MySQL聚合函数

#聚合函数数
#获取学生总数
SELECT COUNT(*) FROM student;
#获取成绩平均分 
SELECT AVG(studentresult) FROM result
#获取指定科目的平均分
WHERE subjectNo = 3;
#求指定科目的 最大值,最小值  
SELECT MAX(studentresult)AS'最高分',MIN(studentresult)AS'最低分'
FROM result WHERE subjectNo = 1;
#求指定科目成绩的总和    可以与最大值最小值并列使用
SELECT SUM(studentresult)AS'成绩总和',MAX(studentresult)AS'最高分',MIN(studentresult)AS'最低分'
FROM result WHERE subjectNo = 1;

#分组,查询男女生的总数
#注意:分组之后查询列不可以用未被分组的列(无意义)
SELECT COUNT(*),sex AS '性别' FROM student
GROUP BY sex;

#上个案例,分完组之后,获取男生的数量
SELECT COUNT(*),sex AS '性别' FROM student 
GROUP BY sex
HAVING sex = '男';

#分完组后,获取数量小于10的那一组信息
SELECT COUNT(*) ,sex AS '性别' FROM student
GROUP BY sex
HAVING COUNT(*)<10;

#函数
#ceil():向上取整
SELECT CEIL(2.3);
#floor():向下取整
SELECT FLOOR(2.8);
#rand():返回0~1之间的随机数
SELECT RAND();
#curdate():获取当前日期
SELECT CURDATE();
#curtime():获取当前时间
SELECT CURTIME();
#now():获取当前时间和日期
SELECT NOW();
#week(date):返回日期date为一年中的第几周
SELECT WEEK(NOW());
#year(date):返回日期date的年份
SELECT YEAR(NOW());
#hour(time):返回时间time的小时值
SELECT HOUR(NOW());
#minute(time):返回时间time的分钟值
SELECT MINUTE(NOW());
#datediff(date1,date2):返回日期参数date2到date1之间相隔的天数
SELECT DATEDIFF(NOW(),'2000-5-25');
#adddate(date,n):计算日期参数date+n天后的日期
SELECT ADDDATE(NOW(),900);
#concat(str1,str1..strn):字符串连接
SELECT CONCAT('my','S','QL');
#insert(str,pos,len,newstr):字符串替换
SELECT INSERT('这是SQL Server数据库',3,10,'MySQL');
#lower(str):将字符串转换为小写
SELECT LOWER('MYSQL');
#upper(str):将字符串转换为大写
SELECT UPPER('mysql');
#substring(str,num,len):字符串截取
SELECT SUBSTRING('JavaMySQLOracle',5,5);

#查询mysql用户信息
SELECT * FROM mysql.`user`;
#weekday(curdate())函数返回一个日期的工作日索引值,即星期一为0,星期二为1,星期日为6。
SELECT WEEKDAY(CURDATE())-6 DAY
#date_sub(d(起始日期),interval(间隔) expr(使用表达式显示需要减去的时间段))函数返回起始日期d减去一个时间段后的日期。
SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) -6 DAY) ;
#查询出当前周的所有日期
    SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) + 0 DAY) AS WEEKDAY
    UNION
    SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) - 1 DAY)
    UNION
    SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) - 2 DAY)
    UNION
    SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) - 3 DAY)
    UNION
    SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) - 4 DAY)
    UNION
    SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) - 5 DAY)
    UNION
    SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) - 6 DAY)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值