我想知道是否有任何查询来计算表格中每行(记录)的已用字段数(列数)。
我想通过计算
来更新名为percentage usage
的表新字段
(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
-------
表示空
答案 0 :(得分:1)
这样的事情应该有效(如果字段的默认/空/未使用值是Null
):
SET @percValue=25;
UPDATE
leads
SET
usagePercent =
IF(Name IS NOT NULL, @percValue, 0) +
IF(Age IS NOT NULL, @percValue, 0) +
IF(Designation IS NOT NULL, @percValue, 0) +
IF(Address IS NOT NULL, @percValue, 0);
您必须根据所拥有的列数更改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;