`

多个group by实例

阅读更多

一、 多个group by用法

 

select allchange.hotelId,allchange.chn_name ,allchange.isactive,allchange.createtime, max(allchange.operDate) modifytime   from 

 

 

                            (

                                    select t.hotelId hotelId, h.chn_name,h.isactive,h.createtime,t.operdate operDate

                                             from htl_info.t_hotel_log t,htl_info.t_hotel h  

                                             where  t.hotelid=h.hotelid and   t.operdate >= to_date('2015/05/10 00:00:00 ','yyyy/mm/dd hh24:mi:ss')  and t.operdate<=to_date('2015/05/22 00:00:00 ','yyyy/mm/dd hh24:mi:ss')               

                                      union  

                                                                      

                                    select r.hotelId hotelId, h.chn_name,h.isactive,h.createtime, r.operdate operDate

                                             from htl_info.t_roomtype_log r, htl_info.t_hotel h  

                                             where  r.hotelid=h.hotelid and   r.operdate >= to_date('2015/05/10 00:00:00 ','yyyy/mm/dd hh24:mi:ss')  and r.operdate<=to_date('2015/05/22 00:00:00 ','yyyy/mm/dd hh24:mi:ss')

                                                    

                            )  allchange  group by allchange.hotelId  ,allchange.chn_name,allchange.isactive,allchange.createtime

 

 

二、case  加上group by 用法

               

 

  select tt.hotelid,tt.chn_name,case when tt.isactive='0' then '删除' when tt.createtime=tt.operdate then '新建'  else '修改'  end as changetype  from 

 

                         (    select allchange.hotelId,allchange.chn_name ,allchange.isactive isactive,allchange.createtime createtime, max(allchange.operDate) operdate  from 

                                                           

                            (

                                    select t.hotelId hotelId, h.chn_name,h.isactive,h.createtime,t.operdate operDate

                                             from htl_info.t_hotel_log t,htl_info.t_hotel h  

                                             where  t.hotelid=h.hotelid and   t.operdate >= to_date('2015/05/10 00:00:00 ','yyyy/mm/dd hh24:mi:ss')  and t.operdate<=to_date('2015/05/22 00:00:00 ','yyyy/mm/dd hh24:mi:ss')               

                                      union  

                                                                      

                                    select r.hotelId hotelId, h.chn_name,h.isactive,h.createtime, r.operdate operDate

                                             from htl_info.t_roomtype_log r, htl_info.t_hotel h  

                                             where  r.hotelid=h.hotelid and   r.operdate >= to_date('2015/05/10 00:00:00 ','yyyy/mm/dd hh24:mi:ss')  and r.operdate<=to_date('2015/05/22 00:00:00 ','yyyy/mm/dd hh24:mi:ss')

                                                    

                            )  allchange  group by allchange.hotelId  ,allchange.chn_name,allchange.isactive,allchange.createtime

                                 

                          ) tt                 

分享到:
评论

相关推荐

    Python中的groupby分组功能的实例代码

    总结而言,Python中的groupby分组功能是Pandas库非常重要的一个功能,它能够根据一个或多个字段的值将数据集划分为不同的组,从而进行进一步的分析、聚合等操作。通过本文的实例代码介绍和操作,相信读者们可以更好...

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

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

    处理group by 查询速度太慢的问题 数据量大.doc

    优化 Group By 查询速度的...通过本实例,我们可以总结出一些有价值的经验:在优化 Group By 查询时,需要将聚合函数用到的字段一起设置为联合索引;需要充分测试和分析查询结果;需要遵循一定的思路来优化查询;等等。

    Lucene group by ,分组实现

    要实现多个字段的分组,我们需要扩展 `GroupCollector` 并重写其中的关键方法。例如,可以创建一个名为 `MultiFieldGroupCollector` 的类,它接受一个字段列表作为参数,对每个字段分别进行分组。在遍历搜索结果的...

    oracle group by语句实例测试

    Oracle中的`GROUP BY`语句是SQL查询中的关键部分,用于根据一个或多个列对数据进行分组,以便对每个组执行聚合函数,如`SUM`、`COUNT`、`AVG`等。在本例中,我们看到的`GROUP BY`语句是用来对`test`表中的数据进行...

    group by 语法大全,内附列子

    `GROUP BY`语句通常与聚合函数(如COUNT, SUM, AVG, MAX, MIN等)一起使用,用来根据一个或多个列的值将结果集分成不同的组。这样做的好处是可以更方便地对每一组的数据进行计算或统计分析。 #### 二、基本语法 `...

    mysql group by having 实例代码

    `GROUP BY` 用于将数据按照指定的一个或多个列进行分组,而 `HAVING` 则用于在分组后对这些分组进行过滤,筛选出满足特定条件的分组。 首先,我们来看`GROUP BY`的基本用法。在上述实例中,有一个名为`employee_tbl...

    SQL GROUP BY 详解及简单实例

    SQL中的GROUP BY语句是数据分析和查询中非常重要的部分,它允许我们根据一个或多个列对数据进行分组,然后对每个组应用聚合函数,如COUNT、SUM、AVG、MAX和MIN等。通过这种方式,我们可以对数据进行汇总,获取更高...

    SQL问题详解之_having_Group by

    GROUP BY子句用于将数据按照一个或多个列进行分组。假设我们有一个包含各国信息的bbc表,字段包括region(地区)、population(人口)和area(面积)。当我们使用`GROUP BY region`时,所有具有相同region值的行将被...

    实例详解Group by和Having子句

    首先,`GROUP BY` 子句用于将数据按指定的一个或多个列进行分组。在这个例子中,我们有一个名为 `DEPARTMENT` 的表,包含 `DEPARTMENT_ID`(部门ID)和 `SALARY`(薪水)两列。如果我们想要查看每个部门的员工薪水...

    sql编程的几个实例

    3. **排序数据**:`ORDER BY`子句用于根据一个或多个列对结果集进行排序。例如,`SELECT * FROM Products ORDER BY Price DESC`将按价格降序显示产品。 4. **分组数据**:`GROUP BY`用于将数据按列值分组,常与聚合...

    SQL实例集锦(很实用)

    对多个组使用GROUP BY `GROUP BY`语句用于将数据分组,常与聚合函数如`SUM()`, `AVG()`, `MAX()`, `MIN()`等结合使用。例如,`SELECT column1, SUM(column2) FROM table_name GROUP BY column1;`将按`column1`列的...

    LINQ实例大全

    `Select`用于映射每个元素到新类型或新结构,而`SelectMany`则将多个集合展开为单一序列。 2. **LINQ - Miscellaneous Operators** 这类操作符包括`Where`(过滤)、`OrderBy`(排序)、`ThenBy`(次要排序)、`...

    Python数据分析中Groupby用法之通过字典或Series进行分组的实例

    `GroupBy`是`pandas`中的一个功能,它将数据集(通常是DataFrame)分割成多个子集,这些子集由一个或多个列的值决定。在这个过程中,我们通常对分组后的子集进行聚合操作,例如计算平均值、计数、求和等。 在提供的...

    详解python中groupby函数通俗易懂

    对于多列分组,可以同时传入多个列名。例如,按照"班级"和"性别"分组: ```python A.groupby(["班级","性别"]) ``` 之后,我们可以使用`agg()`函数一次性执行多种聚合操作,如计算和、均值和标准差: ```python ...

    LINQ多个Sum同时执行的方法

    ### LINQ多个Sum同时执行的方法 在.NET框架中,LINQ(Language Integrated Query)是一种用于处理数据的强大工具,它能够简化对数据集的操作,并且提高了代码的可读性和可维护性。当我们需要从数据集中计算多个聚合...

    sql实例

    例如,会员可以参加多个活动,而活动可以有多个会员参加,这表明会员表和活动表之间存在多对多的关系,需要创建一个关联表(如Registrations)来存储这种关系。 **2. 插入数据** 在俱乐部数据库中,我们经常需要...

Global site tag (gtag.js) - Google Analytics