1

我有以下代码

select ID, count(*) from 
( select ID, service type from database
group by 1,2) suba 
group by 1 
having count (*) > 1

我得到一个表格,我可以在其中看到 ID 和更改计数。与此类似

身份证 | 数数(*)
5675 | 2
5695 | 3
5855 | 2
5625 | 4
5725 | 3

有人可以向我解释如何将所有计数(*)分组,以便我得到一个类似于...的表格

计数 (*) | 数字
2 | 2
3 | 2
4 | 1

等等。有人也可以向我解释一下 suba 是什么意思吗?

我的最新代码:

选择 suba.id, count(*) from
(从 table_name 中选择 id、service_type
按 1,2 分组)作为 suba
按 1 分组
计数 (*) > 1

4

2 回答 2

2

没试过,但我觉得应该可以

 select NoOfChanges, count (*) from
 ( 
     select suba.id, count(*) as NoOfChanges from 
      ( select id, service_type from table_name
       group by 1,2) as  suba
       group by 1 
       having count (*) > 1 
    )
 subtableb
 group by NoOfChanges 

你可以把它想象成

select NoOfChanges, count (*) from subtableb
group by NoOfChanges  

但是 subtableb 不是真正的表,而是您之前查询的结果

于 2012-07-12T17:08:20.387 回答
0

suba是子查询的别名。每个表或子查询都需要一个唯一的名称或别名,以便您可以在查询的其他部分引用它(并消除歧义)。AS请注意,右括号和“suba”之间缺少隐含。

于 2012-07-12T16:50:48.457 回答