请问一下,最后一次在哪家店里消费的怎么写语句???_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
8
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2285 | 回复: 7   主题: 请问一下,最后一次在哪家店里消费的怎么写语句???        下一篇 
    本主题由 hui.chen 于 2015-7-22 10:13:04 移动
rggfg
注册用户
等级:上士
经验:274
发帖:8
精华:0
注册:2015-5-25
状态:离线
发送短消息息给rggfg 加好友    发送短消息息给rggfg 发消息
发表于: IP:您无权察看 2015-5-29 17:51:57 | [全部帖] [楼主帖] 楼主

请问一下,最后一次在哪家店里消费的怎么写语句???

北京联动北方科技有限公司

该贴由hui.chen转至本版2015-7-22 10:13:04




赞(0)    操作        顶端 
青草繁星
注册用户
等级:少校
经验:951
发帖:9
精华:0
注册:2015-3-30
状态:离线
发送短消息息给青草繁星 加好友    发送短消息息给青草繁星 发消息
发表于: IP:您无权察看 2015-5-29 17:52:46 | [全部帖] [楼主帖] 2  楼

row_number



赞(0)    操作        顶端 
青草繁星
注册用户
等级:少校
经验:951
发帖:9
精华:0
注册:2015-3-30
状态:离线
发送短消息息给青草繁星 加好友    发送短消息息给青草繁星 发消息
发表于: IP:您无权察看 2015-5-29 17:53:48 | [全部帖] [楼主帖] 3  楼

需考虑同一天 在两家店消费情况



赞(0)    操作        顶端 
烽火戏诸侯
注册用户
等级:上士
经验:303
发帖:6
精华:0
注册:2015-3-30
状态:离线
发送短消息息给烽火戏诸侯 加好友    发送短消息息给烽火戏诸侯 发消息
发表于: IP:您无权察看 2015-5-29 17:54:56 | [全部帖] [楼主帖] 4  楼

SELECT T.CARDNO AS 卡号, 
       COUNT(1) AS 消费次数, 
       MIN(T.DATETIME) AS 首次消费日,
       MAX(T.DATETIME) AS 末次消费日, 
       0 AS 末次消费所在店

FROM SALES T
GROUP BY T.CARDNO



赞(0)    操作        顶端 
放荡象条狗
注册用户
等级:列兵
经验:93
发帖:0
精华:0
注册:2015-3-30
状态:离线
发送短消息息给放荡象条狗 加好友    发送短消息息给放荡象条狗 发消息
发表于: IP:您无权察看 2015-5-29 17:55:20 | [全部帖] [楼主帖] 5  楼

开窗函数



赞(0)    操作        顶端 
rggfg
注册用户
等级:上士
经验:274
发帖:8
精华:0
注册:2015-5-25
状态:离线
发送短消息息给rggfg 加好友    发送短消息息给rggfg 发消息
发表于: IP:您无权察看 2015-5-29 17:55:39 | [全部帖] [楼主帖] 6  楼

SELECT T.CARDNO AS 卡号,        COUNT(1) AS 消费次数,        MIN(T.DATETIME) AS 首次消费日,       MAX(T.DATETIM.....

可以在这基础上写吗?


赞(0)    操作        顶端 
烽火戏诸侯
注册用户
等级:上士
经验:303
发帖:6
精华:0
注册:2015-3-30
状态:离线
发送短消息息给烽火戏诸侯 加好友    发送短消息息给烽火戏诸侯 发消息
发表于: IP:您无权察看 2015-5-29 17:56:46 | [全部帖] [楼主帖] 7  楼

[qaote=引用4楼烽火戏诸侯的回复SELECT T.CARDNO AS 卡号,        COUNT(1) AS 消费次数,        MIN(T.DATETIME) AS 首次消费日,       MAX(T.DATETIM.....
可以在这基础上写吗?

不可以,要考虑到性能问题的


赞(0)    操作        顶端 
青草繁星
注册用户
等级:少校
经验:951
发帖:9
精华:0
注册:2015-3-30
状态:离线
发送短消息息给青草繁星 加好友    发送短消息息给青草繁星 发消息
发表于: IP:您无权察看 2015-5-29 17:57:11 | [全部帖] [楼主帖] 8  楼

SELECT T.CARDNO AS 会员卡号,

     COUNT(1) AS 累计消费次数,

     MIN(T.DATETIME) AS 首次消费日,

     MAX(T.DATETIME) AS 末次消费日,

     max(decode(r, 1, T.STORE_CODE, null)) AS 末次消费所在店

 FROM (SELECT CARDNO,

STORE_CODE,

DATETIME,

ROW_NUMBER() OVER(PARTITION BY CARDNO ORDER BY DATETIME DESC) AS R

FROM SALES) T

GROUP BY T.CARDNO

这样试试



赞(0)    操作        顶端 
总帖数
8
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论