Я хотел бы знать, есть ли какой-либо запрос для вычисления количества используемых полей (столбцов) в таблице для каждой строки (записи).
Я хочу обновить новое поле таблицы 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
-------
указывает на пустой
Что-то вроде этого должно работать (если по умолчанию/пустое/неиспользуемое значение полей 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;