2017-09-07 61 views
-1

我需要计算mysql中的排名。假设我有整整一个月的我的产品销售值之和的名单,然后我需要排名从最高销售价值的产品,以排名像1,2,3等如何计算mysql中的排名

Month Product Sum of Sales 

Jan  Latop  450000 
jan  Latop  150000 
Jan  Latop  250000 
Feb  Desktop  200000 
Feb  Desktop  150000 
Feb  Desktop  180000 

所以从数据输出将是如销售排名的

个月的产品总和

Jan  Latop  450000 1 
Jan  Latop  250000 2 
jan  Latop  150000 3 
Feb  Desktop  200000 1 
Feb  Desktop  180000 2 
Feb  Desktop  150000 3 
+2

完全不清楚。数据在哪里?想要的行为?你的尝试是什么? –

+0

我已经把上面的数据,但它转换成文本格式,我只是使用排名功能,这是不可用的mysql – Sdesh

+0

你会如何处理关系?期望的结果是什么样的?并参见https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-查询 – Strawberry

回答

0

你可以做这样的事情:

SELECT month,product,sumOfSales, @curRank := @curRank + 1 AS rank 
FROM products p, (
SELECT @curRank := 0 
) q 
ORDER BY sumOfSales DESC; 

我假设表名是product和列名是sumOfSales

-1

您可以通过销售DESC使用该查询将从表顺序 SELECT销售 销售是你的列名储存销售总额 查询将以大多数销售优先等方式返回记录。

+0

我想计算最高的销售排名从最低的销售从1,2,3等 – Sdesh