如何计算匹配某些值的行数?

Posted

技术标签:

【中文标题】如何计算匹配某些值的行数?【英文标题】:How to count the number of rows matching certain values? 【发布时间】:2015-02-13 16:44:59 【问题描述】:

其实我现在有一张桌子:

[Person Table]:
ID  Name    age     City
====================================

1   Jack    14    New York
2   Mike    15    LA
3   Ben     16    Beijing
?           
100 Lee     32    Singapore

(total record = 100)
(Id is Primary Key) 

请提供SQL脚本来查询客户他/她的城市在表中出现大于等于6个。

例子:

The number of customer that live in New York is 10
The number of customer that live in LA=5 
The number of customer that live in Beijing=6. 

因此,在此示例中,输出应该是所有居住在纽约和北京的客户。

【问题讨论】:

使用COUNT(*)GROUP BY 获取每个城市的人数。 到目前为止,您是否尝试过任何查询? 我试过了,但可能有问题。 select * from Person where (select count(*) from Person group by City)>6 【参考方案1】:

这样的事情应该可以工作:

select * from customers 
  join (select city from customers group by city having count(*) >= 6) 
    as city_count
    on customers.city = city_count.city;

您所做的只是创建一个拥有六个或更多客户的城市列表,然后使用它来过滤原始客户表。

Link to SQL Fiddle - using 2 as the threshold

【讨论】:

以上是关于如何计算匹配某些值的行数?的主要内容,如果未能解决你的问题,请参考以下文章

如何计算包含一组列中的值和 Pandas 数据框中另一列中的另一个值的行数?

如何计算联接表上的行数

获取专门的行数

Mongoose 中字段的每个不同值的行数

计算其中的行数以找到特定值的行数[重复]

如何删除EXCEL表中的大量数据行,要删除的行数大概8万