使用以下查询我只得到一行,但我应该有2:
SELECT * FROM `acl` GROUP BY `vara`, `varb`, `varc`, `vard`, `vare`, `varf`, `varg`, `varh`, `vari`, `varj`, `vark`, `varl`, `varm`, `varn`, `varo`, `varp`, `varq`, `varr`, `vars`, `vart`, `varu`, `varv` HAVING COUNT(*) > 1
以下是我的副本: access-list REUTERS_access_in extended permit icmp any host DAF-SUPE-1 log interval 600
access-list REUTERS_access_in extended permit icmp any host DAF-SUPE-1 log interval 600
我只检索第一行。 如何修改我的查询以获取两行?
非常感谢您的回复!
答案 0 :(得分:0)
您编写的查询将返回所有重复项,但不会显示多行,因为您要对所有人进行分组以确定重复的行。 SQL永远不会显示像这样的重复项。没有理由,因为他们是重复的。现在,如果存在不同的列,那些不在“GROUP BY”中,那么您只需将它们包含在SELECT语句中,然后SQL将显示它们。
您可以做些什么来查看特定GROUP BY的重复行数,您可以将计数作为选择的一部分返回,就像这样......
SELECT count(*) count, `vara`, `varb`, `varc`, `vard`, `vare`, `varf`,
`varg`, `varh`, `vari`, `varj`, `vark`, `varl`, `varm`, `varn`,
`varo`, `varp`, `varq`, `varr`, `vars`, `vart`, `varu`, `varv`
FROM `acl`
GROUP BY `vara`, `varb`, `varc`, `vard`, `vare`, `varf`, `varg`, `varh`,
`vari`, `varj`, `vark`, `varl`, `varm`, `varn`, `varo`, `varp`,
`varq`, `varr`, `vars`, `vart`, `varu`, `varv` HAVING COUNT(*) > 1