MySQL-几个月内每月排名
我正在使用MySQL数据库。我希望在过去6个月内逐月生成客户排名 我刚刚得到了下面的查询,用于确定客户在每月民意调查中的排名。仅当日期范围在一个月内时,才正确报告排名MySQL-几个月内每月排名,mysql,sql,Mysql,Sql,我正在使用MySQL数据库。我希望在过去6个月内逐月生成客户排名 我刚刚得到了下面的查询,用于确定客户在每月民意调查中的排名。仅当日期范围在一个月内时,才正确报告排名 select t1.*, @rownum := @rownum + 1 AS RANK from ( select date_format(EVE_DATE,'%Y-%m') as MON_DATE
select
t1.*,
@rownum := @rownum + 1 AS RANK
from
(
select
date_format(EVE_DATE,'%Y-%m') as MON_DATE,
CUST,
SUM(POLL) as SCORE
from
TABLE
where
EVE_DATE >= '2016-01-01' and EVE_DATE <= '2016-01-31'
group by
MON_DATE,
CUST
order by
SCORE desc
)t1,
(SELECT @rownum := 0) r
order by
RANK DESC
我很感激你能帮我走 我认为您希望内部子查询仅按客户聚合,而不是按客户和日期聚合:
select t1.*,
@rownum := @rownum + 1 AS RANK
from (select CUST, SUM(POLL) as SCORE
from TABLE
where EVE_DATE >= '2016-01-01' and EVE_DATE <= '2016-01-31'
group by CUST
order by SCORE desc
) t1 cross join
(SELECT @rownum := 0) r
order by RANK DESC;
谢谢你,戈登。如果我漏掉日期,我就不会得到我所能看到的每月排名。我怎样才能做到这一点与一个小组,由每月请?
select t1.*,
@rownum := @rownum + 1 AS RANK
from (select CUST, SUM(POLL) as SCORE
from TABLE
where EVE_DATE >= '2016-01-01' and EVE_DATE <= '2016-01-31'
group by CUST
order by SCORE desc
) t1 cross join
(SELECT @rownum := 0) r
order by RANK DESC;