按日期分组 A表有 customer(String),createTime(DATE YYYY-MM-DD HH24:MI:SS),totalQty(Double)三个字段假设我想知道所有客户每天(YYYY-MM-DD)totalQty的总数,应该如何做呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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 102 2007-9-29 9:53:16 203 2007-9-29 9:53:32 304 2007-9-29 9:53:41 405 2007-9-29 9:53:52 506 2007-9-28 9:00:00 607 2007-9-28 9:01:00 708 2007-9-28 9:02:00 809 2007-9-28 10:00:00 901、对上述数据按日期求和,结果如下:日期 NUM---------- ----------2007-09-28 3002007-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 3002007-09-29 1502 rows selected*/2、对数据按每天每小时求和,结果如下:日期 NUM------------- ----------2007-09-28 09 2102007-09-28 10 902007-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 2102007-09-28 10 902007-09-29 09 1503 rows selected*/3.按日期取num最大值的记录ID INPUT_DATE NUM-- ---------- ---9 2007-09-28 905 2007-09-29 50--sqlselect 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')) bwhere to_char(a.input_date,'yyyy-mm-dd') = b.input_date and a.num = b.num /*ID INPUT_DATE NUM-- ---------- ---9 2007-09-28 905 2007-09-29 502 rows selected*/ select customer,to_char(createTime,'YYYY-MM-DD') createTime ,sum(totalQty)totalQtyfrom tb group by customer,to_char(createTime,'YYYY-MM-DD'); 所有客户就不加customer分组了select to_char(createTime,'YYYY-MM-DD') 日期 ,sum(totalQty)totalQty from tb group by to_char(createTime,'YYYY-MM-DD'); 初学者求教:在SQL Plus中用sys登陆 提示 ORA-12154:TNS:无法解析指定的连接标识符 请问条行列合并的sql该怎么写 orcl导入,纠结ing 怎么在定义了非空的列插入一个空值 ORACLE 自定义函数的问题 如何根据序号串显示 delphi7用ado连接oracle数据库提示TNS不能连接(内详) 这个sql语句如何写 触发器错误!!ORA-04091:表..发生了变化,触发器/函数不能读,---在线等待!! TNS-12518: TNS: 监听程序无法分发客户机连接 oracle数据库问题 想了很久的一个题目----关于排名次
-- ------------------ ---
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 901、对上述数据按日期求和,结果如下:
日期 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
*/
select customer,to_char(createTime,'YYYY-MM-DD') createTime ,sum(totalQty)totalQty
from tb
group by customer,to_char(createTime,'YYYY-MM-DD');
select to_char(createTime,'YYYY-MM-DD') 日期 ,sum(totalQty)totalQty
from tb
group by to_char(createTime,'YYYY-MM-DD');