按 SQL Table 中的出现次数过滤
Filter by number of occurrences in a SQL Table
鉴于以下 table,其中 Name
值可能在多行中重复:
我们如何确定 Name
值在 table 中出现了多少次,我们能否过滤具有特定出现次数的 names .
例如,我如何过滤此 table 以仅显示出现两次的 names?
您可以使用 group by
和 having
展示 name
在 table 中出现两次的
:
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
听起来您正在寻找名称计数频率的直方图。像这样
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;
鉴于以下 table,其中 Name
值可能在多行中重复:
我们如何确定 Name
值在 table 中出现了多少次,我们能否过滤具有特定出现次数的 names .
例如,我如何过滤此 table 以仅显示出现两次的 names?
您可以使用 group by
和 having
展示 name
在 table 中出现两次的
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
听起来您正在寻找名称计数频率的直方图。像这样
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;