计算MySQL中已使用字段(列)的百分比

时间:2010-09-10 07:07:49

标签: mysql

我想知道是否有任何查询来计算表格中每行(记录)的已用字段数(列数)。

我想通过计算

来更新名为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

-------表示空

1 个答案:

答案 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;