MYSQL (MariaDB) вычисляемый процентный столбец при обновлении - PullRequest
0 голосов
/ 08 сентября 2018

Я пытаюсь получить вычисляемый (виртуальный?) Столбец, который обновляется на вставке, чтобы не использовать триггер, перекрестные объединения или CTE. То, что я надеюсь сделать, это сгруппировать по одному полю (Col1) и вычислить процент данной строки от общего количества в таблице. Например:

+------+-----+------+ | Col1 | Amt | Pct | +------+-----+------+ | foo | 10 | 0.5 | | foo | 5 | 0.25 | | bar | 15 | 1 | | foo | 5 | 0.25 | +------+-----+------+ Вставлен новый ряд ... {Col1: bar, Amt: 5} +------+-----+------+ | Col1 | Amt | Pct | +------+-----+------+ | foo | 10 | 0.5 | | foo | 5 | 0.25 | | bar | 15 | 0.75 | | foo | 5 | 0.25 | | bar | 5 | 0.25 | +------+-----+------+ Любая помощь приветствуется. Я пытался искать в различных сообщениях, включая вилки, и не нашел способа виртуального столбца, чтобы приблизиться к этому на MariaDB.

1 Ответ

0 голосов
/ 08 сентября 2018

Значения в каждой строке вычисляемого столбца не могут зависеть от значений в других строках таблицы.

Возможно, вы захотите рассмотреть представление, а не вычисляемый столбец. Это определение зрения. Обратите внимание, что он принимает сумму всех сумм.

SELECT a.Col1, a.Amt,  
       (100.0 * A.Amt / B.Tot) Pct
  FROM tbl a
  JOIN (SELECT SUM(Amt) Tot FROM tbl)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...