计算MySQL中已使用字段(列)的百分比
我想知道是否有任何查询来计算表中每一行(记录)的已用字段(列)计数 我想通过计算更新我的新表字段计算MySQL中已使用字段(列)的百分比,mysql,Mysql,我想知道是否有任何查询来计算表中每一行(记录)的已用字段(列)计数 我想通过计算更新我的新表字段百分比使用率 (total number of used columns) / (total number columns) * 100 所有记录 如有任何建议,我们将不胜感激。谢谢 例如: 我有一个名为leads的表: Name Age Designation Address Jack 25 programmer chennai Ram
百分比使用率
(total number of used columns) / (total number columns) * 100
所有记录
如有任何建议,我们将不胜感激。谢谢
例如: 我有一个名为
leads
的表:
Name Age Designation Address
Jack 25 programmer chennai
Ram 30 ----------- ----------
Rob 35 Analyst ----------
我添加了一个名为usagepercent
的新列,我想将新字段更新为
Name Age Designation Address usagepercent
Jack 25 programmer chennai 100
Ram 30 ----------- ---------- 50
Rob 35 Analyst ---------- 75
----
表示空类似的内容应该可以工作(如果字段的默认/空/未使用值为Null
):
您必须根据您拥有的列数更改percValue
编辑:RSGanesh的适应解决方案:
UPDATE
leads
SET
usagePercent = (
IF(Name IS NOT NULL, 1, 0) +
IF(Age IS NOT NULL, 1, 0) +
IF(Designation IS NOT NULL, 1, 0) +
IF(Address IS NOT NULL, 1, 0)
) / 4 * 100;
啊,你的意思是检查有多少字段不是它们的默认值,并且有“已使用”字段吗?已使用列表示是否已更新empty@bobby. 不,我的表中有40个字段和大约50k条记录,我想计算每个记录的更新字段数。我想我清楚了@RSGanesh:等等,你的意思是你有50k个空行,现在你想知道哪一个被更改了?@bobby:请检查我上面的例子它能做到这一点,谢谢bobby。另一种方法是更新leads SET usagePercent=(如果(名称不为NULL,1,0)+如果(年龄不为NULL,1,0)+如果(名称不为NULL,1,0)+如果(地址不为空,1,0))/4*100;
UPDATE
leads
SET
usagePercent = (
IF(Name IS NOT NULL, 1, 0) +
IF(Age IS NOT NULL, 1, 0) +
IF(Designation IS NOT NULL, 1, 0) +
IF(Address IS NOT NULL, 1, 0)
) / 4 * 100;