【面试复习】一周内销售额前三的SQL查询语句
前言
最近面试复习,越发的觉得自己的基础太弱了,趁着这个机会,也当是巩固基础知识吧。
SQL语句
一、表中字段:部门ID,销售额,销售日期,销售数量,销售总价
要求:先按部门或销售数量总价统计排序,选出一周内销售总价前三名。
对应的SQL语句:
<span style="font-size:18px;">SELECT departmentId, SUM(salemajor), SUM(salemoney) FROM ta_sale WHERE saleDate > DATE_SUB(CURDATE(), INTERVAL 1 WEEK) GROUP BY departmentId ORDER BY SUM(salemoney) DESC LIMIT 0, 3;</span>
运行结果
涉及到的知识:
1、升序:ASC ;降序: DESC。
2、前几条记录:MySQL:limit (需要查询的第一条记录) ,(查询的最后一条记录);SQL:top 数字。
3、查询一个星期内的记录:select * from ta_sale where saledate>date_sub(curdate(),interval 1 week); 其中1 week是表示一个星期,也可以是两个星期,三个星期。其中如果是按月或是按年的话,可以把week改成 month或year。
4、同时插入多条数据的语句:
<span style="font-size:18px;">INSERT INTO ta_sale (departmentId, sale, saledate, salemajor, salemoney) VALUES (04,9789,2016-7-15,120,143), (03,9789,2016-7-15,120,143), (04,9789,2016-7-15,120,143); </span>
5、group by:分组,如果不用这个关键字的话,会把所有的记录汇总成一个记录。
6、order by::排序,默认的排序是升序,所以这个时候我们可能会用到desc关键字。
总结
开始很畏惧SQL语句,但是经过这次实践下来,觉得SQL语句还是很好玩的,想想如果自己可以随意地操作几百万甚至是几千万的数据,是不是觉得很爽?加油吧!