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

一、场景:

表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)  按重复字段找日期最大的记录的方法(按重复字段自身连接);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,为了实现小说月票统计,我们可以采用以下步骤: 1. 创建数据库表:我们可以创建一个小说月票统计表,其中包含小说名称、作者、月份、月票数等字段。 2. 插入数据:将每本小说每个月的月票数插入到表中。 3. 统计月票数:使用SQL语句统计每本小说每个月的月票总数,并将结果保存到另一个表中。 4. 分析数据:根据月票总数对小说进行排名,并生成报表或图表进行分析和展示。 下面是创建表的示例SQL语句: ``` CREATE TABLE novel_monthly_tickets ( id NUMBER PRIMARY KEY, novel_name VARCHAR2(100), author VARCHAR2(50), month VARCHAR2(10), monthly_tickets NUMBER ); ``` 然后,我们可以使用INSERT语句将数据插入到表中: ``` INSERT INTO novel_monthly_tickets (id, novel_name, author, month, monthly_tickets) VALUES (1, '斗破苍穹', '天蚕土豆', '2021-01', 1000); INSERT INTO novel_monthly_tickets (id, novel_name, author, month, monthly_tickets) VALUES (2, '择天记', '猫腻', '2021-01', 1200); INSERT INTO novel_monthly_tickets (id, novel_name, author, month, monthly_tickets) VALUES (3, '全职高手', '蝴蝶蓝', '2021-01', 800); ... ``` 最后,我们可以使用以下SQL语句统计月票总数并将结果保存到另一个表中: ``` CREATE TABLE monthly_tickets_summary ( id NUMBER PRIMARY KEY, novel_name VARCHAR2(100), author VARCHAR2(50), month VARCHAR2(10), monthly_tickets_sum NUMBER ); INSERT INTO monthly_tickets_summary (id, novel_name, author, month, monthly_tickets_sum) SELECT id, novel_name, author, month, SUM(monthly_tickets) AS monthly_tickets_sum FROM novel_monthly_tickets GROUP BY id, novel_name, author, month; ``` 这样,我们就可以得到每本小说每个月的月票总数,并进行进一步的分析和展示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值