Вы можете добавить пользовательский javascript или jquery с помощью этого плагина. https://wordpress.org/plugins/custom-javascript-editor/
Когда вы используете jQuery, не забудьте использовать режим jquery noconflict
Я всегда использую window functions
для расчета процентов:
Ссылка: http://www.mysqltutorial.org/mysql-window-functions/
Пример : http://sqlfiddle.com/#!17/66373/6
SELECT
user,
product,
c,
sum(c) over(partition by usr) sc,
c / sum(c) over(partition by usr) per
FROM (
SELECT usr, product, count(*) c
FROM tablex
GROUP BY usr, product
) t
CREATE TABLE tablex (
usr varchar(32),
product varchar(32)
);
INSERT INTO tablex VALUES ('a', 'x');
INSERT INTO tablex VALUES ('a', 'y');
INSERT INTO tablex VALUES ('a', 'y');
INSERT INTO tablex VALUES ('a', 'y');
INSERT INTO tablex VALUES ('a', 'z');
INSERT INTO tablex VALUES ('a', 'z');
INSERT INTO tablex VALUES ('a', 'z');
INSERT INTO tablex VALUES ('a', 'z');
INSERT INTO tablex VALUES ('a', 'z');
INSERT INTO tablex VALUES ('b', 'x');
INSERT INTO tablex VALUES ('b', 'x');
INSERT INTO tablex VALUES ('b', 'x');
INSERT INTO tablex VALUES ('b', 'y');
INSERT INTO tablex VALUES ('b', 'y');
INSERT INTO tablex VALUES ('b', 'y');
INSERT INTO tablex VALUES ('b', 'y');
INSERT INTO tablex VALUES ('b', 'y');
INSERT INTO tablex VALUES ('b', 'y');
INSERT INTO tablex VALUES ('b', 'z');
INSERT INTO tablex VALUES ('b', 'z');
INSERT INTO tablex VALUES ('b', 'z');
INSERT INTO tablex VALUES ('b', 'z');
INSERT INTO tablex VALUES ('b', 'z');
Я бы написал так:
select user, product, count(*) as c,
count(*) * 1.0 / sum(count(*)) over (partition by user) as ratio
from table
group by user, product;
Вы можете использовать этот код и проверить план выполнения, я уверен, что производительность была улучшена.
select user, product, CAST(count(*) AS decimal(18,4)) / (select count(*)
from table t2 where t2.user = t1.user)
from table t1
group by user, product