`
herman_liu76
  • 浏览: 99673 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

仅用SQL得到的复杂统计数据的例子

    博客分类:
  • sql
sql 
阅读更多
    正好前不仅和朋友交流数据统计技术,就想写一个关于我如何进行统计的文章。在我们的一般的信息化项目中有这么几大块技术点:

    1.后台J2EE技术架构。实际变化不大,多数时候用一个架构多年可以不变,加上脚手架代码,所以通常没有难度,也无法进一步提高工作效率。
    2.前台技术。用的比较杂,多是基于jquery的框架,现在尽量用Bootstrap吧,easyUi也用,普通的jsp也用,多数情况最好用一套技术就行,除了有时候比较陌生,要查资料外,也无法进一步提高效率。
    3.业务开发与设计,这个方面由于每个项目都不尽相同,多数情况下靠个人能力,重点是能用好流程处理技术,分析好主对象表,从对表表,业务基础表,业务数据表这些关系。这两方面,之前有写过分析的文章了。
    4.统计是客户通常用的重要功能,一般我不认为这个技术上很重要,所以没太关注。后来看到很多统计都弄的很复杂,都是简单的查询,再返回复杂的对象在jvm中处理,花了不少时间在上面,觉得有必要针对这方面写一下,帮助开发人员提高工作效率。

   特点:几乎都用纯SQL实现复杂的统计功能。常用的sql函数有:group by, case when, group_concat(mysql)/listagg(oralce),decode, distinct,having 等。

   一、以具体示例表介绍,表之间的关系如下:

    1.一个学生表


    2.一个学生的奖惩情况表

    3.关系说明  学生表是主表,奖惩情况是从表,有一个FK是主表的PK,就是STUDENT_ID。很简单。从表也可以是多张表,比如每个学生的考试通过情况,每个学生参与班级活动的情况等等。很多统计表是把这些混合在一起的。

    二、第一类统计,每个学生的各种情况分类统计汇总
    特点是,表格的一行是主表的一个对象。
1.


2.


3.


4.


5.一从表的多列统计


6.


7.多从表的情况



    三、第二类统计,某个分类的各种分类统计汇总
    特点是,表格是一行是主表对象的其中一个分类的汇总。

1.


2.


3.用left join进行统计


4.


5.从多个left join处理多个从表的统计


6.不用left join,我个人尝试出来的统计方式。主表的字段组合用INSTR函数后,用于从表统计。



    最后提一下最近碰到的需求,是要在一组里面随机抽取,按说group后里如果有一个random的函数就好了。但是没有,我的做法还是group_concat或者LISTAGG()取出这个字段后,外部程序用‘'’分割成数组,再从里面随机取一个值。

    四、总结
    有些统计的分类是从字典表中得,或者直接用字典表,通过在jvm中循环拼接出来超长的sql,曾经生成过的sql超过2000字符也有。尽量使用SQL,充分利用了数据库本身的能力,虽然多,但不乱,非常的简单。可以节省很多开发时间。

  • 大小: 12.6 KB
  • 大小: 22 KB
  • 大小: 21 KB
  • 大小: 23.9 KB
  • 大小: 29.7 KB
  • 大小: 34.2 KB
  • 大小: 33.5 KB
  • 大小: 46.7 KB
  • 大小: 55.9 KB
  • 大小: 18.1 KB
  • 大小: 23.2 KB
  • 大小: 36.2 KB
  • 大小: 58 KB
  • 大小: 81.6 KB
  • 大小: 74.2 KB
分享到:
评论

相关推荐

    sql复杂查询例子大全

    使用GROUP BY对数据进行分组,并结合聚合函数如COUNT(), SUM(), AVG(), MAX(), MIN()等来计算统计信息。 ```sql SELECT column1, COUNT(*) FROM table GROUP BY column1; ``` 4. **HAVING子句**: HAVING用于...

    复杂sql说明大全 复杂sql查询教程

    【SQL复杂查询详解】 SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言。在复杂的查询中,SQL的威力得以充分体现,它能处理多种复杂的查询情况,如联接查询、嵌套查询、计算查询等。 1. **...

    经典SQL例子-scott

    在IT领域,SQL(Structured Query Language)是一种用于管理和处理关系数据库的强大工具,广泛应用于数据查询、更新、插入和删除等操作。"经典SQL例子-scott"这个资源是学习SQL的一个宝贵资料,它包含了Oracle数据库...

    asp精妙的SQL语句例子

    ### ASP中的精妙SQL语句实例解析 #### 1. 实现用一个表某些字段更新另一个表同名字段 **SQL语句**: ...这些SQL语句涵盖了从简单的数据更新到复杂的数据处理等多个方面,希望对学习和实际应用有所帮助。

    数据分层汇总交叉报表SQL语句实现方法

    在管理系统中,这种报表通常需要处理复杂的数据结构,以便展示不同层次的汇总信息。本文将探讨如何利用SQL语句实现这样的功能,特别是通过WITH AS语句和构建相应的数据结构。 首先,WITH AS语句是SQL中的一种高级...

    sql实训例子

    这个实训例子可能涵盖了从基本的SQL查询到更复杂的数据库操作,下面将对一些关键知识点进行详细讲解。 1. **SQL基本操作**:这通常包括SELECT语句用于查询数据,INSERT语句用于插入新记录,UPDATE语句用于更新现有...

    经典SQL脚本大全

    │ │ 6.1.5 按指定上下限区间进行数据统计的示例.sql │ │ 6.1.6 随机出题的示例.sql │ │ 6.2.1 ROLLUP实现的分级汇总示例(定义各汇总列标题).sql │ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序及汇总列标题处理...

    sql数据文件

    通过以上对SQL数据文件中提供的SQL查询语句的分析,我们可以看出SQL的强大之处在于能够高效地处理大量数据,并通过复杂的查询语句来满足各种业务需求。理解和掌握这些基本概念对于有效地管理和操作数据库至关重要。

    数据库实验(sql server):高级SQL查询(分组、统计、嵌套、组合查询【附SQL源码.TXT】)

    分组查询是SQL中一种非常重要的技术,它可以帮助我们按指定的列将数据进行分类汇总,进而实现各种复杂的统计需求。在给定的例子中,我们可以看到如何使用`GROUP BY`来分析学生选课的情况。 **示例:** ```sql ...

    SQL学习资料(包含所有常用的语句例子)

    SQL,全称Structured Query Language,即结构化查询语言...通过学习和练习这些例子,你可以逐步掌握SQL的核心技能,无论是在日常的数据分析还是在数据库管理工作中,都能得心应手。记得理论结合实践,才能真正精通SQL。

    sql 数据库课件,带例子

    你可以学习到如何使用`SELECT`语句进行复杂的数据查询,包括使用WHERE子句进行条件筛选,使用GROUP BY和HAVING进行分组统计,以及使用JOIN操作合并多表数据。此外,了解聚合函数如COUNT、SUM、AVG、MIN和MAX,能帮助...

    SQL创建存储过程[横向显示列的数据]

    在“横向显示列的数据”这个场景中,我们可以考虑使用动态SQL(Dynamic SQL)来构建我们的存储过程。动态SQL允许我们在运行时构建和执行SQL语句,这在处理不确定数量或未知列名的情况下特别有用。例如,如果我们有一...

    sql实现交叉表的一个很好例子

    根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要介绍了一个使用 SQL 实现交叉表的例子。下面将对此案例进行详细解读,并从中提炼出相关的 SQL 知识点。 ### SQL 实现交叉表的知识点 #### 1. **...

    使用java实现各种数据统计图(柱形图,饼图,折线图)

    总的来说,使用Java和JFreeChart库,我们可以轻松地生成各种数据统计图,将复杂的数据以直观的方式呈现出来,这对于数据分析和报表展示是非常有帮助的。通过学习和实践,开发者可以掌握更多的图表定制技巧,提高数据...

    SQL.rar_SQL视图_sql获得表脚本

    在SQL的世界里,视图(View)是一种虚拟表,它是由SELECT语句构成的查询结果集,虽然在数据库中没有实际存储数据,但可以像操作真实表一样进行查询和更新。视图是数据库设计中的一个重要工具,它可以帮助我们简化...

    Queryjs类SQL前端数据查询类库

    Queryjs是一个专为前端设计的类SQL数据查询库,它借鉴了ThinkPHP查询语法规则,使得前端开发者能够更方便地处理和操作JSON格式的数据,就像在后端使用数据库进行SQL查询一样。这个库极大地提高了前端对数据的处理...

    SQL简单例子.rar

    本压缩包"SQL简单例子.rar"包含了一些基础的SQL语句实例,旨在帮助初学者快速理解并掌握SQL的基本用法。 1. **数据查询**:SQL的核心功能之一就是查询数据。使用`SELECT`语句可以从一个或多个表中获取所需的信息。...

    数据查询语言SQL课件

    在实际应用中,SQL还支持更复杂的操作,如联接(JOIN)不同表的数据,子查询(嵌套查询)以获取满足特定条件的数据,以及使用聚合函数(如SUM, AVG, COUNT等)来计算一组数据的总和、平均值等统计信息。 SQL对于Web...

    连接数据库的统计小例子

    这个"连接数据库的统计小例子"是使用ireport工具完成的一个示例项目,它展示了如何通过编程方式与数据库交互并生成统计报告。ireport是一款强大的报表设计工具,常用于Java平台,与JasperReports库紧密集成,能够...

    SQL SERVER T-SQL

    - **聚合函数**:了解SUM、AVG、COUNT等聚合函数的使用方法,进行统计分析。 #### 五、全文本搜索与全文索引 - **全文索引**:介绍如何在SQL Server中创建和管理全文索引,提高文本搜索性能。 - **全文搜索**:学习...

Global site tag (gtag.js) - Google Analytics