gpt4 book ai didi

MySQL COUNT NULL 内容按列,GROUP 按列

转载 作者:可可西里 更新时间:2023-11-01 06:37:32 24 4
gpt4 key购买 nike

如何按字段/列计算非空条目?我看到了几个按行计数的答案,但无法破解如何对列进行计数。

输入:

╔════╦════════╦════════╦════════╗
║ id ║ field1 ║ field2 ║ field3 ║
║ 1 ║ do ║ re ║ me ║
║ 2 ║ fa ║ ║ so ║
║ 3 ║ la ║ te ║ ║
║ 4 ║ da ║ re ║ ║
╚════╩════════╩════════╩════════╝

输出:

id       4
field1 4
field2 3
field3 2

我正在尝试衡量我正在迁移的一个非常脏的数据库中的字段使用情况。这个数据库中大约有 50 列,所以我正在寻找一种不涉及输入每个列名称的方法。

由于数据存储中的不一致,我可能还必须将该搜索扩展到非 NULL & is-not-empty & ≠ 0 & ≠ "no"— 有些字段从未使用过但自动填充为 "no"。

这个答案看起来很接近我需要的,但会产生一个 SQL 错误,而且我没有足够的声誉来发表评论:Count number of NULL values in each column in SQL

最佳答案

只需使用count():

select count(field1), count(field2), count(field3)
from table t;

这就是 count() 所做的——它计算非 NULL 值。

如果您不喜欢输入名称,请使用元数据表(通常是 information_schema.columns)来获取列名。您可以将 SQL 生成为查询,或将列名复制到电子表格中以生成代码。

编辑:

您可以使用以下方法生成代码:

select group_concat('count(', column_name, ')' separate ', ')
from information_schema.columns
where table_name = <whatever> and table_schema = <whatever2>;

请注意,这使用了鲜为人知的 group_concat() 功能来获取多个字符串参数。

关于MySQL COUNT NULL 内容按列,GROUP 按列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29076077/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com