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)





回复