0

I've got the database from which I would like to extract some sales data divided into clients and months. I've tried using Rank () over (partition by ...) but doesn't work.

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

When I add GROUP BY clause in the way as aforementioned there displays syntax rank error.

I got results:

My aim is limit numbers of displaying clients to 8

0 Answers0