mysql 按类别用SQL语句计算查询出店铺毛利率前十名并显示店铺地区及店长
时间: 2024-02-03 19:15:08 浏览: 34
假设我们有以下表结构:
- store 表:存储店铺信息,包括店铺ID(store_id)、店长(manager)、地区(region)等字段。
- category 表:存储商品类别信息,包括类别ID(category_id)、类别名称(category_name)等字段。
- product 表:存储商品信息,包括商品ID(product_id)、所属类别(category_id)、进货成本(cost_price)、售价(sales_price)等字段。
- sale 表:存储销售信息,包括销售ID(sale_id)、销售时间(sale_time)、销售数量(sale_qty)等字段。
我们可以使用以下 SQL 语句查询出店铺毛利率前十名及其对应的店长和地区:
```
SELECT s.region, s.manager, SUM((p.sales_price - p.cost_price) * sa.sale_qty) / SUM(p.sales_price * sa.sale_qty) AS profit_rate
FROM store s
INNER JOIN product p ON s.store_id = p.store_id
INNER JOIN sale sa ON p.product_id = sa.product_id
INNER JOIN category c ON p.category_id = c.category_id
GROUP BY s.store_id
ORDER BY profit_rate DESC
LIMIT 10;
```
解析:
1. 使用 INNER JOIN 连接 store 表、product 表、sale 表和 category 表,关联条件为 store_id、product_id 和 category_id。
2. 使用 GROUP BY 子句按店铺分组。
3. 使用 SUM 函数计算每个店铺的毛利润和销售额,并计算毛利率(毛利润 / 销售额)。
4. 使用 ORDER BY 子句按毛利率降序排序。
5. 使用 LIMIT 子句限制结果集大小为 10,即查询出前十名。
注意:以上 SQL 语句仅供参考,具体实现可能需要根据实际情况进行调整。