mysql 按类别之用一条SQL语句查询出咖啡店利润排名前十并显示店铺名称、店长、地区建立到新表中(已有利润表、店铺信息表)
时间: 2023-08-01 16:11:54 浏览: 97
mysql一些sql语句,查看表信息
可以使用如下的 SQL 语句将查询结果插入到一个新表 `top_coffee_shops` 中:
```sql
CREATE TABLE top_coffee_shops (
rank INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
shop_name VARCHAR(255) NOT NULL,
manager_name VARCHAR(255) NOT NULL,
region VARCHAR(255) NOT NULL,
profit DECIMAL(10, 2) NOT NULL
);
INSERT INTO top_coffee_shops (shop_name, manager_name, region, profit)
SELECT
s.name AS shop_name,
s.manager AS manager_name,
s.region AS region,
SUM(p.revenue - p.cost) AS profit
FROM
shops s
INNER JOIN profits p ON s.id = p.shop_id
GROUP BY
s.id
ORDER BY
profit DESC
LIMIT
10;
```
其中 `shops` 是店铺信息表,包含以下字段:`id`、`name`、`manager`、`region`,分别表示店铺的 ID、名称、店长和地区;`profits` 是利润表,包含以下字段:`id`、`shop_id`、`revenue`、`cost`,分别表示利润表的 ID、店铺 ID、营收和成本。
这条 SQL 语句的思路是:先使用 `INNER JOIN` 将店铺信息表和利润表关联起来,然后按照店铺分组,计算每个店铺的利润,并按照利润降序排序,取前 10 名,将结果插入到新表 `top_coffee_shops` 中,其中包含店铺名称、店长、地区和利润排名。
阅读全文