MySQL小记

  1. group by 一般要在select中配合聚合函数使用,否则没有意义。
SELECT id, sum(revenue) from Dep group by id;
  1. 聚合函数得出的结果与非聚合元素不一定对应
select 
	dept_no,
	a.emp_no, /* 出现错误 */
	max(Salary) as maxSalary
from salarys a
	left join dept_emp b on a.emp_no = b.emp_no
group by dept_no
  1. 窗口排序函数
rank()113, dense_rank()112, row_number()123, first_value, last_value, lag()前n行数据, lead()后n行数据 后加
overorder by salary range数值幅度\rows上下行范围 between unbounded preceding and unbounded following
  1. 求出邮件发送异常的概率
avg(case e.type when 'no_completed' then 1 else 0 end)
  1. 添加指定区间日期(对应的还有date_sub()函数)
Date_add(min(date),interval 1 day)
  1. 查询两个班级前三名
Select * from
	(Select 
		Name, 
		Class_id, 
		score, 
		rank() over(partition by class_id order by score DESC) scoreRank 
	from t_student) s 
where s.scoreRank < 4
  1. 转换字段类型
cast(字段名 as 转换的类型)
  1. 保留三位有效数
round( ,3)
  1. union表示将两个select的结果连接起来
  2. if是一个三目表达式,用来判断查询出来的值
select 
	name , 
	if(sex=0, '女', ‘男’) as sex 
from stu;
  1. 分区并排序
row_number() over(partition by user_id order by date asc)
  1. 计算每个分区的数量
count(*) over(partition by user_id)
  1. SQL语句的执行顺序
    首先,要清楚在select语句中都用到哪些关键词;其次,要知道执行一步就会产生一个对应的虚拟表。
8SELECT9DISTINCT<select_list>1FROM <left_table>3<join_type> JOIN <right_table>2ON <join_condition>4WHERE <where_condition>5GROUP BY <group_by_list>6WITH {CUBE|ROLLUP}
(7HAVING <having_condition>10ORDER BY <order_by_list>11LIMIT <limit_number>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值