筆者今天在寫MySQL使用rank窗口函數時,報#1064錯誤,仔細檢查后發現並沒有語法錯誤
窗口函數
rank() over ([partition by <列清單>]
order by <排序用列清單>)
原因是MySQL5.6版本沒有窗口函數,參考了很多文章,解決方案如下:
SELECT s.`tableid`, s.`板編號`, s.`S1`, s.`S2`, s.`S3`, s.`S4`, s.`con1`, s.`con2`, s.`con3`, s.`con4`,
-- DENSE_RANK() OVER(PARTITION BY `tableid` ORDER BY `con1`) AS r1
5.6版本沒有窗口函數,只能用變量來實現-- ( SELECT count( DISTINCT con1 ) FROM distance_ratio_mid s2
WHERE s2.tableid = s.tableid AND s2.con1 <= s.con1 ) ranking1 FROM distance_ratio_mid s ORDER BY tableid, con1 DESC;
最終實現了分組並列連續排名:

參考了以下文章:
————————————————
版權聲明:本文為CSDN博主「哲這這」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u011726005/article/details/94592866

還可以參考我的最新博客:
SQL-自鏈接的用法 - Fancy[love] - 博客園 https://www.cnblogs.com/fancy2022/p/15885176.html
