`
FengShen_Xia
  • 浏览: 279391 次
  • 性别: Icon_minigender_1
  • 来自: 东方水城
社区版块
存档分类
最新评论

一个数据库分组统计的问题

阅读更多

数据库中有一张表Test,其表结构如下所示:  

job_id dep_id item name no
000101 0900 002 A001  
000101 0900 003 A002  
000101 0901 001 B003  
000202 0900 004 A005  
000202 0902 003 C004  
000303 0901 002 B004  
000303 0901 004 B005  

 

规则:其实意思就是让一组中item为002的记录所对应的name优先做no的前缀
1、先以job_id,dep_id分组记录;
2、检查同一组记录中有沒有item为002的记录,如果存在,這一组记录的no都是以item为002这条记录对应的name+当前日期,这一组记录的no都相同;如果一组中不存在item为002的记录那么可以隨便挑一个同组中name字段的值做no的前缀。

 

其结果如下所示: 

job_id dep_id item name no
000101 0900 002 A001 A001 -2008-12-25 09:12:06
000101 0900 003 A002 A001 -2008-12-25 09:12:06
000101 0901 001 B003 B003-2008-12-25 09:12:06
000202 0900 004 A005 A005-2008-12-25 09:12:06
000202 0902 003 C004 C004-2008-12-25 09:12:06
000303 0901 002 B004 B004 -2008-12-25 09:12:06
000303 0901 004 B005 B004 -2008-12-25 09:12:06

 

 

其Sql语句为:

 

select tt.job_id,tt.dep_id,tt.item,tt.name,
     nvl2(t2.no,t2.no,concat(tt.name || '-', to_char(sysdate,'yyyy-mm-dd HH24:mm:ss'))) no
  from test tt,
       (select t1.job_id,t1.dep_id,t1.item,t1.name,
               concat(t1.name || '-',to_char(sysdate, 'yyyy-mm-dd HH24:mm:ss')) no
          from test t1,
               (select job_id sj, dep_id sd
                  from test t
                 group by job_id, dep_id
                having count(*) > 1) s
         where t1.job_id = s.sj
           and t1.dep_id = s.sd
           and t1.item = '002') t2
 where tt.job_id = t2.job_id(+)
   and tt.dep_id = t2.dep_id(+)

 

3
1
分享到:
评论

相关推荐

    mysql数据库分组统计数据库 练习脚本DDL goods.sql

    mysql数据库分组统计数据库 练习脚本 DDL

    Oracle数据库按时间进行分组统计数据的方法

    在本示例中,我们关注的是如何利用SQL查询按时间进行分组统计数据。以下将详细介绍几种常见的分组方法及其应用。 1. **按年份分组**: 使用`to_char()`函数将日期字段转换为年份格式,并结合`GROUP BY`子句进行分组...

    Oracle分组统计

    Oracle 分组统计是数据库开发中常用的技术之一。它可以根据不同的条件对数据进行分组和聚合统计。分组统计的目的是将数据按照某种条件分组,然后对每个组进行聚合计算,最后输出结果。 分组统计可以分为多种类型,...

    SQL之分组统计和子查询专题

    李兴华老师的ORACLE数据库课程中,对分组统计和子查询进行了深入详解。本课程涵盖了分组统计的重点和难点、子查询的概念和应用场景,以及在实际开发中需要注意的细节。 分组统计 在SQL中,分组统计是对数据进行...

    达梦数据库数据量统计.sql

    达梦数据库数据量统计.sql

    数据库原理实验报告 - 实验六 分组统计查询和集合查询设计.doc

    "数据库原理实验报告 - 实验六 分组统计查询和集合查询设计.doc" 是一份专注于数据库高级查询技术——分组统计查询与集合查询设计的实验报告。本实验旨在通过实践操作,加深学生对SQL语言中GROUP BY子句、聚合函数...

    VB与数据库结合——销售分组统计报表

    本实例中,我们将深入探讨如何通过VB与Access数据库结合,实现销售分组统计报表的生成。 首先,我们需要理解VB与数据库交互的基本概念。VB可以通过ADO(ActiveX Data Objects)组件来连接和操作数据库,包括创建...

    易语言ACCESS数据库分类统计

    在易语言中,我们可以使用“执行SQL”命令运行此查询,并将结果存储在一个记录集对象中。然后,通过遍历记录集,提取每个类别及其对应的计数,显示在表格或者报表中。 对于“填表格”这个标签,我们可以理解为在...

    Delphi 在 DBGrid 里面显示分组统计的源代码

    在 Delphi 开发环境中,DBGrid 是一个常用的组件,用于展示数据库中的数据。当你需要在 DBGrid 中实现分组统计,即对数据进行分类并显示每个类别的总计,可以使用两种主要方法:一种是通过 ClientDataSet 的 ...

    django ORM 按月分组统计

    以下是一个简单的示例,展示如何使用Django ORM实现按月分组统计: ```python from django.db.models import Count, TruncMonth from .models import YourModel # 假设我们有一个模型,其中包含一个名为'created_...

    大学教学数据库应用 学生教师分组登记

    E-R图显示了实体间的多对一(1:1)、一对多(1:N)和多对多(M:N)关系,例如,一个教师可以教授多个课程,一个课程可以被多个学生选修,一个分组包含多个学生等。 2. **关系模型设计**: 基于E-R图,转换为关系...

    sql2000分组统计

    在SQL Server 2000中,分组统计是一个核心的查询功能,它允许数据库管理员和开发者对数据进行聚合操作,以获取特定字段的汇总信息。分组统计通常涉及GROUP BY语句,配合COUNT(), SUM(), AVG(), MAX() 和 MIN()等聚合...

    ACCESS数据库分类统计易语言源码

    总的来说,"ACCESS数据库分类统计易语言源码"是一个实用的教学资源,它揭示了如何运用易语言和SQL进行数据库的分类统计。对于想要提升数据库编程技能,尤其是对ACCESS数据库操作感兴趣的开发者来说,这是一个值得...

    数据库英文面试问题集锦.doc

    GROUP BY语句用于根据一个或多个列对数据进行分组,常与聚合函数(如SUM, AVG, COUNT, MAX, MIN)结合使用,以便对每个组进行统计计算。 10. **“DROP TABLE”、“TRUNCATE TABLE”和“DELETE ALL”有何区别?** ...

    分布式数据库系统中的并行分组聚合实现.pdf

    OceanBase是由阿里巴巴集团开发的一个分布式关系型数据库,它支持水平扩展和高可用性。OceanBase支持传统的关系数据库功能,同时针对在线事务处理(OLTP)和在线分析处理(OLAP)场景提供了优化,特别适用于大数据量...

    mongoTemplate实现统计和分组

    下面是一个示例代码,演示如何使用 MongoTemplate 实现统计和分组: ```java public DBObject group(DBObject key, DBObject cond, DBObject initial, String reduce) { return this.group(key, cond, initial, ...

    HibernateTemplate分组统计

    2. **分组统计**:指通过SQL语句对查询结果按照一个或多个字段的值进行分组,并对每个分组进行计数或其他聚合操作的过程。 3. **Spring框架**:一个开源的应用程序框架,旨在简化企业级应用程序的开发过程。Spring...

    C# winform 动态分组统计

    总的来说,"C# winform 动态分组统计"项目结合了C#编程、WinForms用户界面设计、数据库查询和数据绑定技术,提供了一个灵活的工具,使用户能够根据需要对数据进行动态分组和统计分析。通过深入了解这些知识点,...

    ASP统计数据库中不同日期的数据个数

    例如,你可以使用以下代码创建一个数据库连接: ```vbscript Dim conn Set conn = Server.CreateObject("ADODB.Connection") conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\path\to\your\db.mdb;...

    面试数据库常见问题以及答案

    以下是一些常见的数据库面试问题及答案概览: 1. **数据模型**: - **概念模型**:用于描述业务对象及其关系,如实体-关系(E-R)模型。 - **逻辑模型**:如关系模型,是数据库管理系统实际使用的数据结构,如SQL...

Global site tag (gtag.js) - Google Analytics