按日期分组

A表有 customer(String),createTime(DATE YYYY-MM-DD HH24:MI:SS),totalQty(Double)三个字段

假设我想知道所有客户每天(YYYY-MM-DD)totalQty的总数,应该如何做呢?

 

select to_char(createTime,'yyyy-mm-dd') createTime, sum(totalQty) otalQty from A group by to_char(createTime,'yyyy-mm-dd')

 

 

--以下为部分示例.

按时间分组求和

ID      INPUT_DATE              NUM
--      ------------------      ---
1    2007-9-29 9:52:53    10
2    2007-9-29 9:53:16    20
3    2007-9-29 9:53:32    30
4    2007-9-29 9:53:41    40
5    2007-9-29 9:53:52    50
6    2007-9-28 9:00:00    60
7    2007-9-28 9:01:00    70
8    2007-9-28 9:02:00    80
9    2007-9-28 10:00:00    90

1、对上述数据按日期求和,结果如下:
日期              NUM
---------- ----------
2007-09-28        300
2007-09-29        150


--sql语句
select to_char(input_date,'yyyy-mm-dd') 日期 , sum(num) num
from jh01
group by to_char(input_date,'yyyy-mm-dd')

--结果
/*

日期              NUM
---------- ----------
2007-09-28        300
2007-09-29        150
2 rows selected
*/

2、对数据按每天每小时求和,结果如下:
日期                 NUM
------------- ----------
2007-09-28 09        210
2007-09-28 10         90
2007-09-29 09        150

--sql语句
select to_char(input_date,'yyyy-mm-dd hh24') 日期 , sum(num) num
from jh01
group by to_char(input_date,'yyyy-mm-dd hh24')

--结果
/*

日期                 NUM
------------- ----------
2007-09-28 09        210
2007-09-28 10         90
2007-09-29 09        150
3 rows selected
*/

3.按日期取num最大值的记录

ID INPUT_DATE NUM
-- ---------- ---
9  2007-09-28 90
5  2007-09-29 50

--sql
select a.id , to_char(a.input_date,'yyyy-mm-dd') input_date,a.num from jh01 a,
(
 
select to_char(input_date,'yyyy-mm-dd') input_date, max(num) num
 
from jh01
 
group by to_char(input_date,'yyyy-mm-dd')
) b
where to_char(a.input_date,'yyyy-mm-dd') = b.input_date and a.num = b.num 

/*
ID INPUT_DATE NUM
-- ---------- ---
9  2007-09-28 90
5  2007-09-29 50
2 rows selected
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值