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