【面试复习】一周内销售额前三的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语句还是很好玩的,想想如果自己可以随意地操作几百万甚至是几千万的数据,是不是觉得很爽?加油吧!

经验分享 程序员 微信小程序 职场和发展