SQL语句:查询排序、聚合函数、分组查询
查询排序
/*
查询 对结果集进行排序
升序,降序 对指定列排序
order by 列名 [可选项:desc][asc]
desc 降序
asc 升序排列 可以不写
*/
— 查询账务表,价格进行升序
SELECT * FROM zhangwu ORDER BY zmoney;
— 降序
SELECT * FROM zhangwu ORDER BY zmoney DESC;
— 查询账务表,查询所有的支出,对金额进行降序排列
— 先过滤条件 where 查询的结果 在排序
SELECT * FROM zhangwu WHERE zname LIKE ‘%支出%’ ORDER BY zmoney DESC;
聚合函数
— 聚合函数 对一列进行计算返回一个单一的值
/*
使用聚合函数进行查询计算
*/
— count 求和,对表中的数据的个数求和 count(列名)
— 查询账务表中一共有多少条数据
SELECT COUNT(*) AS ‘count’ FROM zhangwu;
— sum求和函数,对一列中的数据进行求和计算 sum(列名)
— 对账务表查询 对所有的金额求和计算
SELECT SUM(zmoney) FROM zhangwu;
— 求和 统计所有支出的总金额
SELECT SUM(zmoney) FROM zhangwu WHERE zname LIKE ‘%支出%’;
— max/min 函数 对某列数据获取最大最小值
SELECT MAX(zmoney) FROM zhangwu;
— avg 计算一列所有数据的平均值 如果有空值会忽略那一行
SELECT AVG(zmoney)FROM zhangwu;
分组查询
/*
查询所有数据
吃饭支出 共计多少
工资收入 共计多少
服装支出 共计多少
股票收入 共计多少
打麻将支出 共计多少
分组查询 group by 被分组的列名
必须跟随聚合函数
select查询的时候 被分组的列,要出现在select 选择列的后面
*/
SELECT SUM(zmoney),zname FROM zhangwu GROUP BY zname;
— 对zname当中的内容进行分组查询求和,但是只要支出
SELECT SUM(zmoney)AS ‘getsum’, zname FROM zhangwu WHERE zname LIKE ‘%支出%’
GROUP BY zname
ORDER BY getsum;
— 对zname当中的内容进行分组查询求和,但是只要支出,显示金额大于5000的
— 结果集是分组查询后 再次进行筛选 不能使用where,分组后再次过滤 关键字HAVING
SELECT SUM(zmoney)AS ‘getsum’, zname FROM zhangwu WHERE zname LIKE ‘%支出%’
GROUP BY zname HAVING getsum>5000;