oracle 取日期最大的那条记录

Define_ling 2016-03-03 04:47:38
需求:每天消费大于3000的用户,如有多条,取最近一条
CREATE TABLE T_DEFINE_2(
cus_id VARCHAR2(100),
cdate VARCHAR2(100),
finalPrice NUMBER(10));

INSERT INTO T_DEFINE_2 VALUES ('DEFINE','20160301',500);
INSERT INTO T_DEFINE_2 VALUES ('DEFINE','20160301',10000);
INSERT INTO T_DEFINE_2 VALUES ('DEFINE','20160302',500);
INSERT INTO T_DEFINE_2 VALUES ('DEFINE','20160302',200000);
INSERT INTO T_DEFINE_2 VALUES ('DEFINE','20160303',500);
INSERT INTO T_DEFINE_2 VALUES ('DEFINE','20160303',3000);
INSERT INTO T_DEFINE_2 VALUES ('ECHOS','20160303',500);

我只写了一半.....不知道多条数据,怎样获取最近日期
SELECT T2.CUS_ID, T2.CDATE, SUM(T2.FINALPRICE)
FROM T_DEFINE_2 T2
GROUP BY T2.CUS_ID, T2.CDATE
HAVING SUM(T2.FINALPRICE) >= 3000

期望结果:
1 ECHOS 20160303 3000
2 DEFINE 20160303 3500
...全文
1071 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zy18755122285 2016-03-16
  • 打赏
  • 举报
回复
max(时间),就可以去最新的时间
js14982 2016-03-04
  • 打赏
  • 举报
回复

select CUS_ID,CDATE,sum_finalprice
(select a.*,
      row_number()over(partition by a.CUS_ID,a.CDATE order by sum_finalprice desc) rn
from
(SELECT T2.CUS_ID, T2.CDATE, SUM(T2.FINALPRICE) sum_finalprice
  FROM T_DEFINE_2 T2
 GROUP BY T2.CUS_ID, T2.CDATE)a
 where  sum_finalprice>3000
 )
 where rn=1
;
ORAClE SE 2016-03-03
  • 打赏
  • 举报
回复
根据用户分组,根据消费排序

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧