-- 使用 ROLLUP 进行分组汇总示例
-- 假设我们有一个销售数据表 sales,包含以下字段:
-- id: 销售记录ID
-- region: 销售区域
-- product: 产品名称
-- amount: 销售金额
-- 创建示例表
CREATE TABLE sales (
id INT AUTO_INCREMENT PRIMARY KEY,
region VARCHAR(50),
product VARCHAR(50),
amount DECIMAL(10, 2)
);
-- 插入一些示例数据
INSERT INTO sales (region, product, amount) VALUES
('North', 'Product A', 100.00),
('North', 'Product B', 150.00),
('South', 'Product A', 200.00),
('South', 'Product B', 250.00),
('East', 'Product A', 300.00),
('East', 'Product B', 350.00);
-- 使用 ROLLUP 进行分组汇总
SELECT
region,
product,
SUM(amount) AS total_amount
FROM
sales
GROUP BY
region,
product WITH ROLLUP;
-- 解释:
-- 1. `WITH ROLLUP` 会在每个分组级别生成汇总行。
-- 2. 最后一行会显示所有记录的总和。
-- 3. 如果某个分组列是 NULL,则表示该行是对上一级分组的汇总。
-- 查询结果可能如下:
-- +--------+-----------+-------------+
-- | region | product | total_amount|
-- +--------+-----------+-------------+
-- | East | Product A | 300.00 |
-- | East | Product B | 350.00 |
-- | East | NULL | 650.00 | -- East 区域的汇总
-- | North | Product A | 100.00 |
-- | North | Product B | 150.00 |
-- | North | NULL | 250.00 | -- North 区域的汇总
-- | South | Product A | 200.00 |
-- | South | Product B | 250.00 |
-- | South | NULL | 450.00 | -- South 区域的汇总
-- | NULL | NULL | 1350.00 | -- 所有记录的总和
-- +--------+-----------+-------------+
上一篇:mysql远程登录命令
下一篇:mysql更新
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站