mysql 分組內 排序
阿新 • • 發佈:2019-03-08
order server 內容 pict 賦值 sqlserver sel 分享 tle
mysql 分組內 排序 類似於 sqlserver over partition by
因為mysql中木有sqlserver over partition by這個函數,要從sqlserver 中把查詢遷到mysql ,遇到了一些問題,暫時是這樣解決的
select id, CreationTime, Sku from product_picture
返回結果:
1.同組SKU 給createTime排序
2.同組SKU
定義變量後循環賦值:
SELECT id, rank, rank2, CreationTime, SkuFROM ( SELECT *, @rownum := @rownum + 1, IF ( @pdept = heyf_tmp.Sku, @rank := @rank + 1, @rank := 1 ) AS rank, @pdept := heyf_tmp.Sku, IF ( @pdept2 != heyf_tmp.Sku, @rownum2 := @rownum2 + 1, @rownum2 ) AS rank2, @pdept2 := heyf_tmp.Sku FROM ( -- 只需要改此括號中內容SELECT * FROM product_picture ORDER BY Sku ASC, CreationTime DESC ) heyf_tmp, ( SELECT @rownum := 0, @pdept := NULL, @rank := 0 ) a , ( SELECT @rownum2 := 1, @pdept2 := NULL) b ) result;
返回結果:
rank :表示同組sku下的createtime排序結果
rank1:表示同組sku
mysql 分組內 排序