在SQL中是不是有break on之后,再写compute或compute by都只显示一个结果集呀?(若没有break on,就会返回两个/多个结果集)

比如,题目:一个表中的ID有多个记录,把所有这个ID的记录查出来,并显示共有多少条记录数?

break on id skip 1
select *
from table
group by id
having count(id)>1
order by id
compute count label “COUNT” of id on id

加了break的例子:

是的,你的理解是正确的。在SQL中使用break on时,只会显示一个结果集,无论是使用compute还是compute by都只会显示一个结果集。如果你想在break on之后显示多个结果集,可以使用多个break on语句或者不使用break on语句。针对你提到的问题,下面是一个可以使用的SQL代码示例:

select id, count(*) as count
from table
group by id
having count(id)>1

union all

select 'Total' as id, count(*) as count
from table
having count(id)>1

在上面的示例中,我们使用了union all语句将两个结果集合并到一起,并在第一个结果集中统计了每个ID的记录数,而在第二个结果集中统计了所有记录的总数,并使用'Total'作为ID。