And*_*ill 2 sql informix aggregate
想象一下,我有一个包含{id,username,firstname,lastname}的客户的数据库表
如果我想找到有多少个不同名字的实例我可以做:
select firstname, count(*) from Customers group by 2 order by 1;
firstname | count(*)
====================
bob | 1
jeff | 2
adam | 5
Run Code Online (Sandbox Code Playgroud)
如何计算多次出现的名字数量?在伪sql中它将是这样的:
select
COUNT(
firstname,
count(*) as num_occurrences
)
from
Customers
group by 2
having num_occurrences > 1;
Run Code Online (Sandbox Code Playgroud)
你有正确的想法:
SELECT COUNT(*)
FROM (
SELECT firstname
FROM Customers
GROUP BY firstname
HAVING COUNT(*) >= 2
)
Run Code Online (Sandbox Code Playgroud)
子查询计算多次出现的名字.然后你算上所有这些名字.该HAVING子句允许您按聚合过滤.它就像一个WHERE子句,除了你可以使用聚合函数.