你的数据库有一个名为Sales表, 此表包括了来自销售人员的销售订单概要信息.销售经理要求你创建一个销售额排在前20位的销售人员报表, 你该使用哪个查询来完成这个任务() A SELECT TOP 20 PERCENT 姓名, SUM (销售量) AS 销售总量FROM sales GROUP BY 姓名ORDER BY 销售总量 DESC B B、SELECT TOP 20 姓名,COUNT(*) 销售总量FROM sales GROUP BY姓名ORDER BY 销售总量 DESC C C、 SELECT TOP 20 姓名, MAX(销售数量) AS 销售总量FROM sales GROUP BY 姓名ORDER BY 销售总量 DESC D D、 SELECT TOP 20 姓名, SUM (销售数量) AS 销售总量FROM sales GROUP BY 姓名ORDER BY SUM(销售数量) DESC
时间: 2024-03-15 10:41:55 浏览: 100
正确的查询语句是 D、`SELECT TOP 20 姓名, SUM(销售数量) AS 销售总量 FROM sales GROUP BY 姓名 ORDER BY SUM(销售数量) DESC`。
该查询语句使用 `GROUP BY` 子句按照姓名对销售表进行分组,然后使用 `SUM` 聚合函数计算每个销售人员的销售总量,并将结果按照销售总量降序排序。最后,使用 `TOP 20` 限制返回结果的行数,只返回销售总量排名前 20 的销售人员信息。
选项 A 中的语句使用 `TOP 20 PERCENT`,返回的是销售总量排名前 20% 的销售人员信息,不符合要求。选项 B 中的语句使用了 `COUNT` 函数来计算销售总量,不符合要求。选项 C 中的语句使用了 `MAX` 函数,计算的是每个销售人员的单个订单中的最大销售量,不符合要求。因此,选项 D 中的语句是正确的。
相关问题
54.你的数据库有一个名为Sales表, 此表包括了来自销售人员的销售订单概要信息.销售经理要求你创建一个销售额排在前20位的销售人员报表, 你该使用哪个查询来完成这个任务() A SELECT TOP 20 PERCENT 姓名, SUM (销售量) AS 销售总量FROM sales GROUP BY 姓名ORDER BY 销售总量 DESC B B、SELECT TOP 20 姓名,COUNT(*) 销售总量FROM sales GROUP BY姓名ORDER BY 销售总量 DESC C C
、SELECT TOP 20 姓名, SUM(销售额) AS 销售总额 FROM Sales GROUP BY 姓名 ORDER BY 销售总额 DESC。
答案解析:
选项 A 中使用了 TOP 20 PERCENT,这意味着查询结果将返回销售总量排名前 20% 的销售人员,而不是固定的前 20 名。
选项 B 中使用了 COUNT(*),这会返回每个销售人员的销售订单数量,而不是销售额。
因此,应该选择选项 C,使用 SUM 函数计算每个销售人员的销售总额,并按照销售总额降序排列,然后选择前 20 名。
在名为Lab5的数据库下创建一个表,表名为sales
好的,可以通过以下 SQL 语句在名为Lab5的数据库下创建名为sales的表:
```
CREATE TABLE sales (
id INT PRIMARY KEY,
product_name VARCHAR(50),
price DECIMAL(10,2),
sale_date DATE
);
```
以上 SQL 语句会创建一个名为sales的表,其中包含id、product_name、price和sale_date四个字段。其中id为主键,类型为整型;product_name为产品名称,类型为字符串型,长度为50;price为价格,类型为十进制数,共10位,其中小数点后保留2位;sale_date为销售日期,类型为日期型。