如何将使用普通 table 表达式查询的 Row_number 转换为 Mysql
How to Convert Row_number with Common table expression query to Mysql
以下查询包含 SQL 和 ROW_NUMBER()
一个窗口函数和一个常见的 table 表达式:
WITH numbered AS (
SELECT ROW_NUMBER() OVER (
PARTITION BY master_id, Report_id
ORDER BY master_id, Report_id
) AS _dupe_num
FROM #tradePositionFilterInfo
WHERE 1=1
)
DELETE FROM numbered
WHERE _dupe_num > 1
如何将其转换为在 MySQL 中工作?
使用mysql的多表删除语法:
delete a
from #tradePositionFilterInf a, #tradePositionFilterInf b
where a.master_id = b.master_id
and a.Report_id = b.Report_id
and a.id > b.id
最后一行是关键。我选择了 id
列来打破平局,假设会有这样一个列。如果不是,请使用 timestamp
或类似的。如果没有基于时间的列,请使用任何不同的列。如果所有列都相同,则说明您已完蛋。
以下查询包含 SQL 和 ROW_NUMBER()
一个窗口函数和一个常见的 table 表达式:
WITH numbered AS (
SELECT ROW_NUMBER() OVER (
PARTITION BY master_id, Report_id
ORDER BY master_id, Report_id
) AS _dupe_num
FROM #tradePositionFilterInfo
WHERE 1=1
)
DELETE FROM numbered
WHERE _dupe_num > 1
如何将其转换为在 MySQL 中工作?
使用mysql的多表删除语法:
delete a
from #tradePositionFilterInf a, #tradePositionFilterInf b
where a.master_id = b.master_id
and a.Report_id = b.Report_id
and a.id > b.id
最后一行是关键。我选择了 id
列来打破平局,假设会有这样一个列。如果不是,请使用 timestamp
或类似的。如果没有基于时间的列,请使用任何不同的列。如果所有列都相同,则说明您已完蛋。