php – 基于类别和分支的Mysql排名

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 基于类别和分支的Mysql排名脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我很难搞清楚并试图解决这个问题.
你能帮助我提出一个逻辑或想法,如何根据销售情况得出每个分支的每个类别的排名? @H_512_2@例如:

> branch_code_id = 9的等级1是Accicular,因为它有300,000的销售额
> branch_code_id = 9的等级2是WLO,因为它只有200,000
销售.

与其他分支相同.我只需要每个branch_code_id的类别等级.

我无法弄清楚如何循环这个.如您在excel输出中所见,排名将放在“r”列中.

顺便说一句,这是我用来获取你在截图中看到的结果的sql语句.

SELECT 
    a.id,a.date,a.branch_code_id,SUM(b.amount),c.category 
From 
    sales_add_h AS a 
    INNER JOIN sales_add_i AS b ON a.id = b.sales_h_id 
    INNER JOIN control_panel_ITem_create AS c ON b.item_code_id = c.id 
group by c.category,b.amount 
ORDER BY SUM(b.amount) DESC@H_304_15@ 
 

多谢你们

试试这个查询
SELECT 
  @rn:=if(@PRv=branch_code_id,@rn+1,1) as rId,@prv:= branch_code_id as branch_code_id,val,id,date,category 
From
  (SELECT 
    a.id,SUM(b.amount) as val,c.category 
  FROM 
    sales_add_h AS a 
  INNER JOIN 
    sales_add_i AS b ON a.id = b.sales_h_id 
  INNER JOIN 
    control_panel_item_create AS c ON b.item_code_id = c.id 
  GROUP BY 
    c.category,b.amount 
  ORDER BY 
    a.branch_code_id,SUM(b.amount) DESC)tmp
  JOIN 
    (SELECT @rn:=0,@prv:=0)t

SQLFIDDLE了解排名如何运作.

我已经为你提到的每个branch_id做了排名,如果你想为特定分支中的每个类别排名,而不是你需要添加一个存储类别的变量并在if子句中进行比较,还需要在内部排序数据通过c.category,SUM(b.amount)DESC查询相应的顺序

脚本宝典总结

以上是脚本宝典为你收集整理的php – 基于类别和分支的Mysql排名全部内容,希望文章能够帮你解决php – 基于类别和分支的Mysql排名所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。