SQL 如下:
INSERT INTO upsertTable
SELECT * FROM (
SELECT cnt0 as id, count(id) as cnt FROM
(SELECT id, count(*) as cnt0 FROM orderTable GROUP BY id)
GROUP BY cnt0
)
WHERE cnt > 0
输入数据:
1L, "hz"
2L, "hz"
3L, "hz"
1L, "hz"当最后的WHERE 条件cnt >0(或者不加),结果是: (true,1,3) // 会被后面的(true,1,2)覆盖 (true,1,2) (true,2,1) 这个结果理解是对的, 最后结果是 (true,1,2) 和 (true,2,1) 但是如果WHERE 条件是 cnt > 2 结果就是 (true,1,3) 这个就不理解了 为什么会输出中间结果(true,1,3),这样就和批处理上的sql结果不一致了 而不应该是没有输出么,或者 先发(true,1,3)再发(false,1,3)
