【SQL语句练习提高】 在SQL中,查询和操作数据是其核心功能。以下通过给出的练习题目,我们将深入理解SQL的基本句式和用法。 28. 题目要求从`employee`表中抽取部门名称(depart_name),计算平均工资(avg(wage)),并按部门名称排序,但排除含有"human resource"的部门。解决方法如下: ```sql SELECT depart_name, AVG(wage) FROM employee WHERE depart_name <> 'human resource' GROUP BY depart_name ORDER BY depart_name; ``` 此查询首先通过`WHERE`子句排除了"human resource"部门,然后使用`AVG()`函数计算每个部门的平均工资,并通过`GROUP BY`将结果按部门名称分组。`ORDER BY`确保结果按照部门名称的字母顺序排序。 29. 题目要求返回`Test`表中`num`字段的最小值,但不能使用`MIN`等统计函数。我们可以利用`ORDER BY`和`LIMIT`或`TOP 1`来实现: ```sql -- 对于MySQL或PostgreSQL SELECT num FROM Test ORDER BY num LIMIT 1; -- 对于SQL Server SELECT TOP 1 num FROM Test ORDER BY num; ``` 这两个查询都将返回`num`字段的最小值,因为它们都首先对`num`进行排序,然后选择第一个记录。 33. 要求查询每个`Customer`的`Revenue`总和。这里有几种不同的写法,它们都会得到相同的结果: ```sql -- 方法一:使用FULL JOIN SELECT Customer.ID, SUM(ISNULL([Order].Revenue, 0)) FROM customer FULL JOIN [order] ON ([order].CustomerID = customer.ID) GROUP BY customer.ID; -- 方法二:使用INNER JOIN SELECT customer.id, SUM(order.revener) FROM customer INNER JOIN [order] ON (order.customerid = customer.id) GROUP BY customer.id; -- 方法三:使用WHERE子句 SELECT customer.id, SUM(order.revener) FROM customer, [order] WHERE customer.id = customerid GROUP BY customer.id; ``` 5. 问题涉及`performance`表,要求选出最高分数(score)。如果只需要分数,可以使用: ```sql SELECT MAX(score) FROM performance; ``` 如果要同时选出分数和对应的名字,可以使用: ```sql SELECT TOP 1 score, name FROM performance ORDER BY score DESC; ``` 或者: ```sql SELECT name1, score FROM performance WHERE score IN (SELECT MAX(score) FROM performance); ``` 4. 关系`s(sno, sname)`, `c(cno, cname)`, `sc(sno, cno, grade)`的题目: 1. 查询选修了课程"db"的学生人数: ```sql SELECT COUNT(*) FROM sc WHERE cno = (SELECT cno FROM c WHERE c.cname = 'db'); ``` 2. 选择成绩最高的学生号: ```sql SELECT sno FROM sc WHERE grade = (SELECT MAX(grade) FROM sc); ``` 3. 每科大于90分的人数: ```sql SELECT c.cname, COUNT(*) FROM c JOIN sc ON c.cno = sc.cno AND sc.grade > 90 GROUP BY c.cname; ``` 以上SQL语句展示了如何处理各种数据查询,包括聚合函数、连接操作、子查询以及条件筛选。通过这些练习,我们可以更好地理解和掌握SQL的基础知识。
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助