付费名次

场景:假设现在有几个游戏渠道,我们要对比今天的渠道付费和昨天渠道付费,看看在这些渠道中的排名是降低了还是上升了。我们可以先以今天的时间间隔为查询条件,并以渠道进行分组查询出各个渠道总的付费金额。

select to_char(logtime, ‘yyyy-mm-dd‘) logtime,platform,sum(cash) money from platform_cash where logtime
logtime>=to_date(‘20150616‘, ‘yyyymmdd‘) and logtime < to_date(‘20150616‘, ‘yyyymmdd‘)+1 group by to_char(logtime,‘yyyy-mm-dd‘),platform order by logtime

然后另一个查询是以昨天为查询条件,查询出各个渠道的总的付费金额和rownum,并将付费金额以降序排列。则,这个rownum就表示了昨天各个渠道在渠道当中的付费排名了。

select rownum as lastrank,bb.* from (select sum(cash) money,platform from platform_cash where logtime >= to_date(‘20150616‘, ‘yyyymmdd‘)-1 and logtime < to_date(‘20150616‘, ‘yyyymmdd‘)  group by platform  order by money desc) bb

因为这个明细表plat_cash里面的渠道字段只是一个缩写,为了找到它所对应的中文名称还得与一个渠道表进行关联。也就是说这两个查询都得和渠道表进行关联。整合上面两条查询:

select aa.money,s1.name,aa.operate,s.lastrank from (select to_char(logtime, ‘yyyy-mm-dd‘) logtime,operate,sum(cash) money from platform_case where logtime logtime >= to_date(‘20150616‘, ‘yyyymmdd‘) and logtime < to_date(‘20150616‘, ‘yyyymmdd‘)+1 group by to_char(logtime,‘yyyy-mm-dd‘),operate order by logtime)aa,
(select rownum as lastrank,bb.* from (select sum(cash) money,operate from platform_cash where logtime >= to_date(‘20150616‘, ‘yyyymmdd‘)-1 and logtime < to_date(‘20150616‘, ‘yyyymmdd‘)  group by operate  order by money desc) bb)s,(select name,oper_short as short from tab_oper)s1 where s1.short=aa.operate and aa.operate=s.operate(+)

将上面两个连接查询的结果作为一个中间表,外再套一层查询,查出这个中间表的渠道名称、渠道付费金额、昨天排名、rownum,并且以渠道付费金额进行降序排列rownum就代表了今天的渠道付费排名。取出前5条记录,就是今天的前5个渠道付费排名,然后也知道了今天的前5相对于昨天的排名是降低了还是上升了。

select rownum as rank,t0.name name,t0.money data ,t0.lastrank last from (
select  t. money , sl.name, t.platform ,s.lastrank from (
select to_char(logtime, ‘yyyy-mm-dd‘) logtime,platform, sum(cash_add) /100 money  from mysql.t_rt_all_game_cash_add where gameid=14 and logtime >= to_date(‘20150616‘, ‘yyyymmdd‘) and logtime < to_date(‘20150616‘, ‘yyyymmdd‘)+1 group by to_char(logtime, ‘yyyy-mm-dd‘),platform order by logtime) t,(select rownum as lastrank,t1.* from(
 select sum(cash_add) /100 money,platform from mysql.t_rt_all_game_cash_add where gameid=14 and logtime >= to_date(‘20150616‘, ‘yyyymmdd‘)-1 and logtime < to_date(‘20150616‘, ‘yyyymmdd‘)  group by platform  order by money desc)t1)s, (select name, oper_short as platform from t_sy_operator ) sl  where  sl.platform=t.platform and t.platform=s.platform(+) order by money desc)t0 where rownum<=5
时间: 2024-10-30 13:42:35

付费名次的相关文章

LeetCode:Rank Scores - 按分数排名次

1.题目名称 Rank Scores(按分数排名次) 2.题目地址 https://leetcode.com/problems/rank-scores/ 3.题目内容 按分数排名次,如果两个Id的分数一样,那么他们的名次是一样的,排名从1开始.注意,每组分数的名次,都是上一组分数名次加一. 例如,有这样一组数据: +----+-------+ | Id | Score | +----+-------+ | 1  | 3.50  | | 2  | 3.65  | | 3  | 4.00  | | 

cocos2dx安卓客户端接入移动MM付费SDK

C++和java的调用需要使用JNI,这里使用cocos2dx提供的JniHelper就可以满足要求. 以游戏中购买炸弹道具为例 流程图: 先按照文档进行配置: 在Java工程中新建一个包"IAP",作为C++与mmsdk交互的中间层: Handler和Listener可以使用Demo自带的两个类,将Demo2.4.2中的IAPHandler.java和IAPListener.java复制到IAP中: 在package IAP下新建类IAPJni 1 package IAP; 2 3

苹果的IAP 内置付费

第一步:你需要在iTunesConnect中创建个新的App,然后为这个App设置一些产品(付费道具)等: OK,这里Himi稍微解释下,iTunesConnect是苹果提供的一个平台,主要提供AP发布和管理App的,最重要的功能是创建管理项目信息,项目付费产品(道具)管理.付费的测试账号.提交App等等,这里就简单介绍这么多,关于产品一词在此我们可以理解成游戏道具即可:在苹果看来所有付费都属于产品 =. =千万不要纠结字眼哦- OK,打开iTunesConnect网站:https://itun

LA 5031 Graph and Queries —— Treap名次树

离线做法,逆序执行操作,那么原本的删除边的操作变为加入边的操作,用名次树维护每一个连通分量的名次,加边操作即是连通分量合并操作,每次将结点数小的子树向结点数大的子树合并,那么单次合并复杂度O(n1logn2),由于合并之后原本结点数少的子树结点数至少翻倍,所以每个结点最多被插入 logn 次,故总时间复杂度为 O(n log2n)  . 注意细节处理,代码如下: 1 #include <cstdio> 2 #include <cstdlib> 3 #include <cstr

HDU 1285 确定比赛名次

确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 19100    Accepted Submission(s): 7610 Problem Description 有 N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排 名,但现在裁判委员会不能

(拓扑)确定比赛名次 -- hdu -- 1285

http://acm.hdu.edu.cn/showproblem.php?pid=1285 确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18484    Accepted Submission(s): 7399 Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,....

hdu1285 确定比赛名次 (拓扑排序)

确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 16782    Accepted Submission(s): 6659 Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直

iOS 内付费 (一)(转)

很久之前就想出一篇IOS内付费的教程,但是一查网上的教程实在太多了,有的写得真的蛮不错的,就心想算了,于是就保存在草稿箱了.至于为什么写完它呢!真是说来话长,最近公司有个项目经理跑来问我有关苹果内付费相关的细节,跟他聊了半天,从项目对接苹果官方支付接口聊到了如何查看App收益,最后终于使他有了一些眉目,但是悲催的是还要我继续去跟他们项目的程序员讲解(真是疯了),所以我就决定给他们项目写一个内购的文档,所以我顺便把这篇博客完成吧! =================================

HDU1285 确定比赛名次【拓扑排序】【优先队列】

确定比赛名次 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 13215    Accepted Submission(s): 5291 Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直