SQL 高级查询

本文介绍了SQL的高级查询技术,包括聚合函数如SUM、COUNT、AVG、MAX和MIN的使用,以及GROUP BY和HAVING子句在聚合查询中的应用。此外,详细讲解了不同类型的联表查询:INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN,以及它们在实际场景中的应用。还举例展示了LIKE、BETWEEN、IN等条件查询以及如何结合聚合函数进行复杂查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.聚合函数

1.sum()求和

select sum(age)from 库名

2,。count ()统计有多少条记录

select count(*)from 库名

3.avg() 求平均值

select avg(age)from 库名

4. max ()求最大值

select max(age)from 库名

5.min ()求最小值

select min (age) from 库名

二 .聚合函数和分数函数搭配运用

group by 

select 列名+聚合函数 from 库名group by 列名 having +聚合函数;

三. 联表查询

1.内部 inner join

2.左联表 left join

3.右联表 right join

4.全部联表查询 full join

 

 

 

--模糊查询

--5、查询所有梁姓家庭成员(like)

select * from tb_users where uname like '梁%'

--6、查询日常收支表中所有rmenu即备注含‘去’字的记录

select * from tb_inoutinfo where rmenu like '%去%'

--7、查询日常收支表中2月到3月之间的收支情况(between)

select * from tb_inoutinfo where month(rdate) between 2 and 3

--8、查询日常收支表中1000到5000之间金额的收支记录

select * from tb_inoutinfo where rmoney between 1000 and 5000

--9、查询日常收支表中工资和奖金记录,即xid为1,2的记录

select * from tb_inoutinfo where xid in(1,2)

--聚合函数

--10、求存款额,即对金额求和

select sum(rmoney) as 总收入from tb_inoutinfo where rmoney>0

--11、求总支出,即为金额为负数的求和

select sum(rmoney) as 总支出from tb_inoutinfo where rmoney<0

select * from (select sum(rmoney) as 总收入from tb_inoutinfo where rmoney>0 )a join (select sum(rmoney) as 总支出from tb_inoutinfo where rmoney<0)b on 1=1

--12、求梁山伯今年发了几次工资,即为uid为1且xid为1的记录记数

select * from tb_inoutinfo where uid=1 and xid=1

--13、最大收入额,即求最大值

select max(rmoney) from tb_inoutinfo

--分组

--14、求每个人的财务金额和,即根据uid分组后求rmoney的和

select uid,sum(rmoney) from tb_inoutinfo group by uid

--15、求每个人的支出金额,即条件为rmoney为负数,根据uid分组求rmoney的和

select uid,sum(rmoney) from tb_inoutinfo where rmoney<0 group by uid

--16、求每个人的收入金额,但只显示超过10000元,即条件为rmoney大于0, 根据uid分组求和,并有having筛选大于10000的

select uid as 成员编号,sum(rmoney) as 金额from tb_inoutinfo where rmoney>0 group by uid having sum(rmoney)>10000

--17、求入支出项目个数,即在项目表中按收支类型分组,再计数

select xid,sum(rmoney) from tb_inoutinfo group by xid

--联表查询

--18、在收支项目表和日常收支表中查询项目编号,项目名称,收支类型,收支金额

select rid,xname,xtype,rmoney from tb_inoutinfo a left join tb_inoutfield b on a.xid=b.xid

--19、在成员表和日常收支表中查询家庭角色,姓名,金额,操作日期

select a.uid,uname,upart,rmoney,rdate from tb_users a join tb_inoutinfo b on a.uid=b.uid

--20、在收支项目表和日期收支表,成员表中查询姓名,项目名称,收支金额

select uname,xname,xtype,rmoney,rdate from tb_users a join tb_inoutinfo b on a.uid=b.uid join tb_inoutfield c on b.xid=c.xid

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值