SQL 单表查询
-- 需求4:聚合函数的使用:
-- 聚合函数 count() 的使用
-- 4.1:统计 gjp_ledger表中共有多少条数据。
select
COUNT(*)
from
gjp_ledger ;
-- 提示:使用count(*)
-- 4.2:count 统计所有工商银行的内容,共有多少条
select COUNT(*) from gjp_ledger g where g.`account` ='工商银行';
-- 提示:使用 LIKE + '%内容%'
-- 4.3:统计账务表中金额大于3000的有多少条记录
-- 提示:使用比较运算符 >
select COUNT(*) from gjp_ledger g where g.`money`>3000
-- 聚合函数 sum() 的使用
-- 询账务表,求出money字段的和
select SUM(g.`money`) from gjp_ledger g
-- 提示:使用sum(字段名)
-- 4.5:查询账务表,统计所有支出的金额总和
select SUM(g.`money`) '支出总和' from gjp_ledger g where g.`parent` ='支出'
-- 提示:查询条件为 '支出'
-- 聚合函数:max,min 求出最大和最小值
-- 4.6:查询账务表,统计出 支出中的最大值 和 收入中的最小值
select MAX(g.`money`) from gjp_ledger g where g.`parent`='支出'
select MIN(g.`money`) from gjp_ledger g where g.`parent`='收入'
-- 聚合函数:avg():--
-- 4.7:查询账务表,计算出,所有支出的平均数
select AVG(g.`money`) from gjp_ledger g where g.`parent`='支出'
-- 提示:avg(字段) 计算这个字段的平均数
-- 排序order by:
-- 4.8 :查询账务表,使用money字段,进行升序排序
select * from gjp_ledger g order by g.money asc
-- 4.9 :查询账务表,使用createtime字段,进行降序排序
select * from gjp_ledger g order by g.`createtime` desc
-- 需求2:分组 group by的使用
-- 查询出,支出的共计多少钱,收入的共计多少钱
select SUM(g.`money`) '总计',g.`parent` from gjp_ledger g group by g.`parent`
-- 提示:需要对支出和收入进行分组
-- 查询出,所有的金额总和,先按照支出和收入分类,再按照银行的类型分类。
select SUM(g.`money`