mysql 分组排序并加序号


mysql 分组排序并加序号。

1.需要在已分好组的数据外,嵌套一层查询。这层查询只用来做小组的编号,或者是order by,序号生成是在Order by 之后(这点很重要)。

2.加上绿色背景部分

3.相同的package_item_id,进行小组排序。

SELECT 
 @r:= CASE WHEN @rank=te.package_item_id THEN @r+1 ELSE 1 END AS quoteRanking,
		@rank:=te.package_item_id AS TYPE,
		te.* FROM (
  SELECT 

    pqi.item_Name itemName,
    pqi.`package_item_id`,
    pt.bidder_Name_Cn bidderName,
    pt.`bidder_id`,
    ROUND(MAX( pqi.unit_Price_Taxed), 2) quotePrice,
    DATE_FORMAT(
      pqi.create_Time,
      '%Y-%m-%d %H:%i:%s'
    ) quoteTime,
    pqi.price_Unit priceUnit,
    pqi.price_Currency priceCurrency 
  FROM
    ptb_quote pt,
    ptb_quote_item pqi 
  WHERE pt.id = pqi.quote_id 
    AND pt.package_id = '10937' 
    AND pqi.unit_Price_Taxed IS NOT NULL 
    AND pt.is_Deleted = '0' 
    AND pqi.is_Deleted = '0'
GROUP BY pqi.package_item_id,
  pt.bidder_id 
ORDER BY pqi.package_item_id,
  pqi.unit_Price_Taxed DESC ) te,(SELECT @r:=0 ,@rank:='') b
  ORDER BY te.package_item_id,
  te.quotePrice DESC   

  效果图

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM