首页 > 应用开发 > IT综合 > 一句话从 MySQL 取出重复行
按该字段分组后,组内行数大于 1 的就是重复行。大于 1 要写入 having;但仅用 group+having 只能得到汇总值,不是明细数据,要得到明细还要用子查询重复遍历:
select *
from A
where g in
(select g
from A
group by g
having count(*)>1)
SQL 没有显式的集合数据类型,不能保持住分组后的子集,进而无法针对子集进行后续的多步骤运算,不得不用冗长的子查询。
这类集合运算如果用集算器 SPL 就方便地多,只要一句:
=connect(”mysqlDB”).query(“select * from A”).group(g).select(~.len()>1).conj()
有了显式集合后,就可以对分组子集做更复杂的后续计算,包括枚举分组、重叠分组等,参考 分组?原来你是玩儿真的!
当数据不在数据库里时,SPL 执行复杂计算仍然方便:
=file(“d:/t.csv”).import(;,",").group...
SPL能很方便地嵌入到JAVA应用,可参考 《Java 如何调用 SPL 脚本》。
具体使用方法可参考 《如何使用集算器》。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69900830/viewspace-2700788/ ,如需转载,请注明出处,否则将追究法律责任。