SQL-计算整个表中不为空且不为空的所有单元格

问题描述

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

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

是否存在一个查询,我可以用来对所有列中符合特定条件的所有单元格进行计数(在这种情况下,该列不是NULL也不是空/空白)?

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

谢谢!

解决方法

尝试使用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