汇总 函数是 SQL 中的一个强大工具,可让您在聚合查询中生成小计和总计。此功能对于需要计算不同详细级别的合并值的报告和分析特别有用。
汇总 函数与 GROUP BY 子句结合使用来创建分层分组。它会自动在查询末尾添加代表小计(部分总和)和总计的额外行。
SELECT column1, column2, aggregation(column3) FROM table GROUP BY 汇总(column1, column2);
让我们使用上面代码中创建的产品表,其中包含有关产品及其类别的信息。
如果我们只查询按类别分组,我们会得到以下结果:
SELECT product_category, SUM(product_value) AS total FROM products GROUP BY product_category;
结果:
Category | Total |
---|---|
clothing | 40.48 |
food | 6.97 |
通过添加 汇总 函数,我们可以包含小计和总计:
SELECT CASE WHEN product_category IS NULL THEN 'Grand Total' ELSE product_category END AS category, SUM(product_value) AS total FROM products GROUP BY 汇总(product_category);
结果:
Category | Total |
---|---|
clothing | 40.48 |
food | 6.97 |
Grand Total | 47.45 |
我们可以更进一步,计算多个级别的小计。例如,要按类别和产品计算小计:
SELECT CASE WHEN product_category IS NULL AND product_name IS NULL THEN 'Grand Total' WHEN product_name IS NULL THEN 'Subtotal - ' || product_category ELSE product_name END AS description, SUM(product_value) AS total FROM products GROUP BY 汇总(product_category, product_name);
结果:
Description | Total |
---|---|
T-shirt | 10.99 |
Shorts | 8.99 |
Shoes | 20.50 |
Subtotal - clothing | 40.48 |
Rice | 1.99 |
Popcorn | 0.99 |
Filet Steak | 3.99 |
Subtotal - food | 6.97 |
Grand Total | 47.45 |
汇总 功能简化了复杂报告的创建,减少了手动操作的需要。 Oracle、SQL Server 和 MySQL 等许多数据库都支持此功能。使用它可以使您的查询更加高效,让您的报告更加动态! ?
以上是汇总的详细内容。更多信息请关注PHP中文网其他相关文章!