编写牛客sql心得
常用函数
#sum():求和
#max 求最大值 仅是最大值
#min 求最小值 仅是最小值
#count() 取得记录数
#avg() 取平均值
limit n offset m 分页
从第m个开始 每n个为一页
简写limit n,m.
group by
分组查询 通过哪些字段进行的分组合并查询
count(*)
数量计算
having函数
一般跟在group by 后面添加判别语句,跟where 左右相同,但只有他能在group by后面添加条件语句
order by
对数量级的字段进行又底到高排序
distinct
去重 对字段当中相同字段作去重操作
round函数
用于把数值字段舍入为指定的小数位数。
round(avg(sum),2) 前面是计算的值,后面为保留小数点位数 (2位)
where in
(1,2,3,4) 多个选择条件
union all
对查询的两个表的结果不作去重操作。保留相同数据。
if用法
case用法
CASE函数
是一种多分支的函数,可以根据条件列表的值返回多个可能的结果表达式中的一个。
可用在任何允许使用表达式的地方,但不能单独作为一个语句执行。
时间提取date_format(date, "%Y-%m")="202108"
datediff
作用:返回两个日期之间的时间间隔
例: 2021/08/05 q1
2021/08/15 q2
datediff(day,q1,q2) =10
substring_index函数
substring_index(str,n,m)
如果m是正数,那么就是从左往右数,第N个分隔符的左边的所有内容
如果m是负数,那么就是从右往左数,第N个分隔符的右边的所有内容
例:str=(180cm,25,male) substring_index(str,2,3)----80