`
txin0814
  • 浏览: 219995 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

sql grouping用法

    博客分类:
  • sql
阅读更多
示例代码如下:
DECLARE @t TABLE(Groups char(2),Item varchar(10),Color varchar(10),Quantity int)
INSERT @t SELECT 'aa','Table','Blue', 124
UNION ALL SELECT 'bb','Table','Red',  -23
UNION ALL SELECT 'bb','Cup'  ,'Green',-23
UNION ALL SELECT 'aa','Chair','Blue', 101
UNION ALL SELECT 'aa','Chair','Red',  -90

--汇总显示
SELECT Groups=CASE 
        WHEN GROUPING(Color)=0 THEN Groups
        WHEN GROUPING(Groups)=1 THEN '总计'
        ELSE '' END,
    Item=CASE 
        WHEN GROUPING(Color)=0 THEN Item
        WHEN GROUPING(Item)=1 AND GROUPING(Groups)=0 THEN Groups+' 合计'
        ELSE '' END,
    Color=CASE 
        WHEN GROUPING(Color)=0 THEN Color
        WHEN GROUPING(Color)=1 AND GROUPING(Item)=0 THEN Item+' 小计'
        ELSE '' END,
    Quantity=SUM(Quantity)
FROM @t
GROUP BY Groups,Item,Color WITH ROLLUP
/*--结果
Groups Item       Color           Quantity    
-------- ---------------- ---------------------- ----------- 
aa     Chair      Blue            101
aa     Chair      Red             -90
                 Chair 小计       11
aa     Table      Blue            124
                 Table 小计       124
       aa 合计                    135
bb     Cup        Green           -23
                  Cup 小计        -23
bb     Table      Red             -23
                 Table 小计       -23
       bb 合计                    -46
总计                              89
--*/
分享到:
评论

相关推荐

    SQLServer中汇总功能的使用GROUPING,ROLLUP和CUBE

    然而,GROUP BY还可以与GROUPING、ROLLUP和CUBE运算符结合使用,以实现更复杂的多维度汇总功能。这些高级的汇总方法在数据分析和报表生成中非常有用,尤其是在处理大型数据集时。 GROUPING运算符主要用于识别汇总行...

    oracle中的grouping

    本文将详细解释`GROUPING`函数的使用方法及其应用场景,并通过一个示例来帮助理解其工作原理。 #### 一、`GROUPING`函数简介 `GROUPING`函数主要用于标识列是否被包含在`GROUP BY`子句中。当某列未被`GROUP BY`...

    《Pro Oracle SQL》Chapter7 -- 7.7Extending Reports with GROUPING()

    在7_14_os.sql这个文件中,可能包含了一个示例脚本,演示了如何在实际查询中使用GROUPING函数和GROUPING ID。可能的脚本内容可能包括创建视图、进行复杂的聚合计算,以及如何利用GROUPING函数来解析和展示结果。读者...

    《Pro Oracle SQL》Chapter7 -- 7.8Extending Reports With GROUPING_ID()

    7-15.sql和7-15_os.sql文件可能包含与GROUPING_ID()相关的其他实例,可能是在没有使用Oracle的OLAP(在线分析处理)功能时,如何手动实现类似多维分析的效果。这些示例可能涉及如何在查询中结合GROUP BY、HAVING和...

    《Pro Oracle SQL》Chapter7 --7.6Eliminate NULLs with the GROUPING() Function

    《Pro Oracle SQL》一书的第7章,7.6节专门讲解了如何使用GROUPING()函数来处理这个问题。GROUPING()函数是Oracle数据库提供的一种特殊函数,用于识别汇总结果中的NULL值,并且在分组操作中有着独特的应用。 NULL值...

    SQL---行转列 详细描述

    2. **执行动态SQL**:接着,使用`EXEC`命令执行之前构建好的动态SQL。 示例代码如下: ```sql DECLARE @sql VARCHAR(8000) SET @sql = 'SELECT ' SELECT @sql = @sql + ', MAX(CASE WHEN ' + γ + ' THEN ELSE 0 ...

    《Pro Oracle SQL》Chapter7 Advanced Grouping -- 7.5Putting CUBE To Work

    《Pro Oracle SQL》Chapter 7 Advanced Grouping 是一本关于Oracle...通过阅读《Pro Oracle SQL》的这一章节,以及实践7_11_os.sql和7_12_os.sql中的示例,读者可以深入了解并掌握CUBE的用法,提升自己的数据处理能力。

    rollup cube grouping sets的用法

    ### rollup cube grouping sets 的用法 在数据库查询语言 SQL 中,`ROLLUP`, `CUBE`, 和 `GROUPING SETS` 是三个重要的概念,它们主要用于处理多维度数据的汇总和分组问题,使得数据分析更加灵活高效。接下来,我们...

    rollup,cube,grouping sets()的个人理解

    而在更复杂的场景下,为了方便地处理多级别的汇总数据,SQL提供了三种额外的语法:`ROLLUP`、`CUBE`以及`GROUPING SETS()`。这些语法可以帮助我们更加灵活地处理分组结果,并且可以有效地减少查询次数,提高效率。 ...

    Microsoft SQL Server 2008技术内幕:T-SQL查询(第二卷)

    主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表表达式、排名函数、数据聚合和透视转换、TOP和APPLY、数据修改、分区表、特殊数据结构等实际应用时会遇到的各种高级查询问题和解决...

    《Pro Oracle SQL》Chapter7 Advanced Grouping -- 7.2HAVING Clause

    总之,《Pro Oracle SQL》中的这一章节深入介绍了`HAVING`子句的用法,帮助读者掌握如何在Oracle数据库环境中有效地进行分组和条件筛选,提升SQL查询的灵活性和实用性。通过实践和理解提供的示例脚本,读者将能够将...

    Sql学习第四天——SQL 关于with cube,with rollup和grouping解释及演示

    在SQL查询中,`WITH CUBE` 和 `WITH ROLLUP` 是两种高级的聚合功能,它们用于扩展`GROUP BY`语句的功能,提供更复杂的分组和汇总数据的能力。这两种方法都涉及到多维数据分析的概念,尤其是在处理大量数据时非常有用...

    sql rollup用法 小计汇总

    SQL中的ROLLUP操作是用于创建多级汇总的一种方法,它在Oracle和SQL Server等数据库管理系统中都得到了广泛的应用。ROLLUP操作与GROUP BY语句一起使用,可以生成数据的上卷(roll-up)或聚合视图,即从最细粒度的数据...

    sql 分组,统计等常用语句

    文件中提到的关于SQL Server 2000到2005的数据迁移过程虽然与主题不太相关,但也提到了一种常见的数据库升级方法。简单来说,可以从旧版本的数据库备份数据,然后在新版本中恢复这些数据。这种方法适用于大多数...

    GROUP BY子句(rollup,cube,grouping sets)实例说明

    GROUP BY 子句是 SQL 语言中用于分组数据的关键字,它可以根据一个或多个列对数据进行分组,并对每个分组应用聚合函数,以便计算和输出所需的结果。GROUP BY 子句有多种形式,本文将通过实例来说明 GROUP BY 子句的...

    SQL Server T-SQL Recipes, 4th Edition

    - **流程控制**: 讨论`IF...ELSE`, `WHILE`, `CASE`等结构的使用方法,以实现更复杂的逻辑处理。 - **错误处理**: 探讨如何捕获和处理执行过程中的异常情况。 **3. Working with NULLS** - **NULL值处理**: 阐述...

    SQLServer和Oracle的常用函数

    - SQL Server独有的`GROUPING_ID()`用于确定分组级别,Oracle则使用`RANK()`, `DENSE_RANK()`, `ROW_NUMBER()`等窗口函数来实现类似功能。 6. **条件函数** - `CASE`语句在两个数据库中都存在,用于基于条件进行...

    用SQL实现统计报表中的小计与合计的方法详解

    在SQL中,生成统计报表,特别是包含小计与合计的部分,是常见的需求。...如果需要优化,可以考虑进一步调整代码以减少内存消耗,或者考虑使用其他方法,如GROUPING SETS或ROLLUP,取决于数据库系统版本的支持情况。

    SQL_Server2008函数大全

    2. **使用方法**: - 函数可以在SELECT语句中使用,例如`SELECT MAX(column_name) FROM table`获取列的最大值。 - 可以与其他SQL语句结合,如`WHERE`子句中的条件判断`WHERE column_name = DATEADD(day, -7, ...

Global site tag (gtag.js) - Google Analytics