首页 > 解决方案 > SQL - 计算整个表中不为空且不为空的所有单元格

问题描述

我最近被要求对一些表中非 NULL 且非空/空白的所有单元格进行计数。

问题是,我有大约 80 个表,其中一些表有几十列,而另一些表有数百列。

是否有一个查询可以用来计算符合特定条件的所有列中的所有单元格(在这种情况下不是 NULL 并且不是空/空白)?

我做了一些搜索,似乎大多数答案都围绕着单列或只有 3-5 列的表。

谢谢!

标签: sqlcountcell

解决方案


尝试使用 pymysql 或 pyodbc 连接器将 SQL 与 pandas 连接,然后使用 for 循环遍历每一列并对其应用 count 函数。

import pymysql
import pandas as pd
import numpy as np

con = pymysql.connect('[host name]', '[user name]','[your password]', '[database name]')

cursor = con.cursor()


df = pd.read_sql('select * from [table name]',con) # SQL converted to pandas dataframe
print(df)


for col in df.columns: # loops through column
    count_ = df[col].count()
    print(count_) # returns count for non-nan values

推荐阅读