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按天统计(详细)

--创建表 Test CTEATE TABLE TEST( ID  NUMBER NOT NULL, MODIFIEDTIME  DATE NOT NULL ) --按天统计 SELECT...

oracle按每天,每周,每月,每季度,每年查询统计数据

//按天统计 select count(dataid) as 每天操作数量, sum() from tablename group by trunc(createtime...

【统计】Oracle按月统计(详细)

--创建表 Test CTEATE TABLE TEST( ID  NUMBER NOT NULL, MODIFIEDTIME  DATE NOT NULL ) --按月统计...

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

解决问题:               1. pl/sql 的简单使用和Java连接oracle数据库               2.Java连接成功,但...

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

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

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

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

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

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

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

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

春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。

1、问题:春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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