SQL Rank()OVER分区与mutliple在哪里

时间:2017-02-08 09:20:10

标签: mysql sql sum rank partition

我有一个数据库,我想从中提取一些分为客户和月份的销售数据。我尝试使用Rank()over(partition by ...)但不起作用。

SELECT * FROM (SELECT access_Month, client, 
  Sum(sales) as sales,
  RANK () OVER (PARTITION BY Month ORDER BY Sum(sales) DESC) as rank
  FROM DB.SALES
  WHERE (country='poland')AND (Year=2016)
  GROUP BY Month, client)
  WHERE rank<8

 I got results:
 Month  Client  Sales   Rank
 1       A      100,000  1
 1       B      10,000   2
 1       C       1,000   3
 1       D       100     4
 1       E        10     5
 1  F   1   6
 .          
 .          
 .          
 1  X   0   30
 2  A   120,000 1
 2  B   14,400  2
 2  C   1,728   3
 2  D   207 4
 2  E   25  5
 2       F  3   6
 .      0   
 .      0   
 .      0   
 2  X   0   30

当我按照前面提到的方式添加GROUP BY子句时,会显示语法排名错误。

我得到了结果:

我的目标是限制显示客户端的数量为8

0 个答案:

没有答案