问题描述
给出下表,其中Name
值可能在多行中重复:
我们如何确定表中的Name
值存在多少次,以及如何过滤出现次数特定的名称。
解决方法
您可以使用having
和name
来展示在表中两次出现的select name,count(*) cnt
from mytable
group by name
having count(*) = 2
:
select count(*) cnt
from (
select name
from mytable
group by name
having count(*) = 2
) t
然后,如果您希望名称的总数出现两次,则可以添加另一个聚合级别:
[["A","A","A"],["B","B"],["C"]]
,
听起来您正在寻找名称计数频率的直方图。像这样
with counts_cte(name,cnt) as (
select name,count(*)
from mytable
group by name)
select cnt,count(*) num_names
from counts_cte
group by cnt
order by 2 desc;
,
您需要使用GROUP BY子句查找重复的名称计数
select name,count(*) AS Repeated
from Your_Table_Name
group by name;
如果您只想显示重复超过一次的内容。然后,使用下面的查询将显示那些出现次数超过一次的事件。
select name,count(*) AS Repeated
from Your_Table_Name
group by name having count(*) > 1;