SQL- 来自 Excel 的 countif 通信

SQL- countif correspondence from Excel

我有以下 table,填充了 CODE1 并且 COUNT 具有我希望使用公式获得的值。

它的情况与 excel count if() 基本相同,但我在 SQL.

中需要它
CODE1   COUNT       
  1       2  
  1       2  
  2       3  
  2       3   
  2       3    
  3       2   
  3       2    

谢谢!

您没有指定您的 DBMS,所以这是标准的 SQL(所有现代 DBMS 都可以理解 - 包括 z/OS 或 LUW 的任何最新版本的 DB2):

select code1, 
       count(*) over (partition by code1) as cnt
from the_table
order by code1;

第一个解决方案:

我认为这个 SQL 将组合 group by 和 having 子句,例如

Select CODE1,count(1) as cnt
from yourTable
group by CODE1
having count(1) > threshold 

阈值将是您的标准,高于 SQL 将适用于所有数据,如 MS Access、Oracle 等。

第二种解决方案:

在 case 语句中使用 sum,例如

Select CODE1,sum(case when yourColumn ='anyValue' then 1 else 0 end) as cnt
from yourTable

第二种解决方案不适用于所有数据库。

编辑:

现在我在MYSQL给出解决方案,见SQL Fiddle