MySql 查询到 MS Access

MySql query to MS Access

所以我正在尝试(实际上让它在 MySql 中工作)从 源 table 中获取 3 列,删除它的重复项在这 3 列中的 2 列上(这就是我需要分区和 row_number 的原因),一旦删除重复项,我将检查 目标 table 如果这两个相同的值尚不存在。

但现在我必须通过MS Access,发现不支持partition byrow_number() .

任何方法将不胜感激

查询如下:

INSERT INTO TARGET_TABLE (COL1, CV1, CV2)
SELECT st.DontCareValue, st.CV1, st.CV2
FROM(
select DontCareValue, CV1, CV2,
row_number() over (partition by CV1, CV2 order by DontCareValue) as rn
From sourceTable
where length(CV1) >= 2) st
where st.rn = 1
and not exists(select 1 from TARGET_TABLE tt
where tt.CV1= st.CV1
and tt.CV2 = st.CV2)

Shadow 是这么说的:

请记住,在使用新的有用分析功能之前,过去存在同样的问题。你只需要从那时起找到合适的设计模式。您将得到 RN=1,这将是每个 CV1、CV2 组的 DontCare 的最小值。所以只需在你的 su

中使用 min
INSERT INTO TARGET_TABLE (COL1, CV1, CV2)

SELECT st.MinDontCareValue, st.CV1, st.CV2
FROM (SELECT Min(DontCareValue) MinDontCareValue, CV1, CV2
      FROM sourceTable
      WHERE length(CV1) >= 2
      GROUP BY CV1, CV2) st

WHERE not exists (SELECT 1 
                  FROM TARGET_TABLE tt
                  WHERE tt.CV1= st.CV1
                    AND tt.CV2 = st.CV2)