MySql 查询到 MS Access
MySql query to MS Access
所以我正在尝试(实际上让它在 MySql 中工作)从 源 table 中获取 3 列,删除它的重复项在这 3 列中的 2 列上(这就是我需要分区和 row_number 的原因),一旦删除重复项,我将检查 目标 table 如果这两个相同的值尚不存在。
但现在我必须通过MS Access,发现不支持partition by和row_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)
所以我正在尝试(实际上让它在 MySql 中工作)从 源 table 中获取 3 列,删除它的重复项在这 3 列中的 2 列上(这就是我需要分区和 row_number 的原因),一旦删除重复项,我将检查 目标 table 如果这两个相同的值尚不存在。
但现在我必须通过MS Access,发现不支持partition by和row_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
中使用 minINSERT 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)