《SQL经典实例》:4. number及date相关函数

本文详细介绍了SQL中的Number相关函数,包括Group by与聚合函数的使用,累计求和、累计乘积的计算,以及众数和中位数的查找方法。此外,还探讨了Date相关函数,如datediff、interval、year/month/day、date_add/adddate、date_format和last_day的用法,帮助理解日期操作的各种场景。
摘要由CSDN通过智能技术生成

        目录

Number相关函数

Group by+聚合函数

累计求和

累计乘积

查找众数

查找中位数

 Date相关函数

datediff / interval

year/month/day

 date_add/adddate

date_format

last_day


Number相关函数

Group by+聚合函数

  • group by函数将拥有同等的某列值的记录summary成一行记录,和聚合函数(count, min, max, avg, sum等)一起使用;
  • 可以按照多个字段group by,比如group by ename, empno;
  • group by后跟着的字段可以不出现在select语句里,比如SELECT avg(sal) FROM emp e GROUP BY deptno是可以的;
  • 但select语句里不能有group by后没有的非聚合的列,比如SELECT ename, empno, avg(sal) FROM emp e GROUP BY ename(会报错,应为GROUP BY ename, empno)。

一个简单的例子:

SELECT deptno, min(sal) AS min_sal, max(sal) AS max_sal
FROM emp
GROUP BY deptno;

累计求和

内嵌一个标量子查询即可

-- 累计求和salary形成新的一列runningtotal
SELECT ename, e.sal, 
(SELECT sum(d.sal) FROM emp d WHERE d.empno <= e.empno)running_total
FROM emp e;

累计乘积

通过对数求和再exp的方式,计算累计乘积。原理和累计求和一样,都是内嵌一个标量子查询。

-- 由于乘积太大,这里只看了deptno=10的几条记录的累计乘积
SELECT e.ename, e.sal, 
(SELECT exp(sum(ln(d.sal))) FROM emp d WHERE d.empno <= e.empno AND d.deptno = e.deptno) running_prod
FROM emp e
WHERE e.deptno = 10; 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值