oracle 按id统计出金额的总数,并按日期显示出最新的数据

原创 2015年11月17日 19:47:11

一、场景:

表statistics_test

a_id      money   in_time

1             20        2015-11-12

1             10        2015-11-13

2             4          2015-10-09

2             36        2015-10-10

将该表的数据,以id统计金额的总数,记录的数量,并显示出最大日期的记录

即输出:

a_id        in_time        count           sum_money

1         2015-11-13         2                 30

2         2014-10-10         2                  40

二、问题解决

该问题的解决分为三步:

(1)先按id进行统计,采用group by  ,输出a_id,count,sum_money作为一张表P;

    select a_id,sum(money),count(a_id) from statistics_test group by a_id; 注意使用了group by子句后,select后面的字段只能是group by后出现的字段,之外的字段已聚集函数的形式,出现在select后面,select出来的结果集可以作为一张表,与oracle库中的表进行连接;

(2)将表P与表statistics_test进行关联,输出时间字段;

(3)最后按a_id找出日期最大的记录。

   找日期最大的采用的单表自身关联,借助于max函数来实现

如下:

SELECT a.a_id,a.in_time,P.cou,P.mon FROM statistics_test a,(select a_id,count(a_id) as cou,sum(money) as mon from statistics_test Group By A_ID) P where a.a_id = P.a_id and a.in_time =(select max(a1.in_time) from statistics_test a1 where a.a_id = a1.a_id);

 总结:

(1)对group by的使用方法;

  (2)   select 后的结果集可以与数据表进行等值连接;

  (3)  按重复字段找日期最大的记录的方法(按重复字段自身连接);

Oracle按日期分组统计数据

昨天项目突然改了个需求,要求折线图的数据显示,必须按照月三天,季度九天来分组统计数据,网上搜索了一堆,差点没找着相关的!还好找到了类似的,现整理下提供给有需要的大家参考参考! (本人是在Oracle数...

oracle 数据库的管理工具 PL/SQL_Developer 的简易使用 与Java 连接并查询显示出数据

解决问题:               1. pl/sql 的简单使用和Java连接oracle数据库               2.Java连接成功,但是while循环里面就是查询不出数据来的...

C#练习——统计整型数组中不重复数字的个数、将普通日期格式转换成汉字日期格式、在控制台录入每个学生的姓名,当用户输入quit(不区分大小写)时,程序停止接受用户的输入,并且显示出用户输入的学生的个数

using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst...

显示出每月有几周和每周一开始到周末的日期

前言:一般做数据统计的时候相信好多朋友都对日期进行过处理。

Spring boot项目 使用ip+port+contextPath进行访问的时候会直接显示出项目中的一些接口信息和相关数据

事件起因: 今天有同事突然说在浏览器中直接用ip+port+contextPath,在本地的话就是localhost:8082/v1,这是我配置的相关信息 后面不需要跟上具体接口的地址就能过直接...

在Xcode里面连接MySQL,同时显示出mysql里的数据

最近因为课程设计的需要,所以要连接数据库,我个人觉得SQL Server太大了,所以我就下载了MySQL,而且为了操作数据简单点就下载了Workbench,这个管理软件,挺实用的,workbench和...

java web从零单排第十二期《struts2》数据校验显示出错信息

熟悉servlet编程处理错误信息显示到JSP页面时,都会将错误信息保存到request中,然后在JSP页面中通过JSTL/EL表达式显示出来,而struts2也是使用这种方式,但是封装的更加完善。 ...

Fragment中使用ListView为什么不显示出数据?

这两天刚学了Fragment,就想尝试这在fragment
  • MLDan
  • MLDan
  • 2014年10月08日 18:13
  • 2869

用单向链表输入数据,逆序显示出

#include #include #include typedef int datatype;typedef struct linklist { datatype data; s...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle 按id统计出金额的总数,并按日期显示出最新的数据
举报原因:
原因补充:

(最多只允许输入30个字)