В mySQL У меня есть таблица ID_Cat
ниже, показывающая каждый идентификатор, принадлежащий к какой категории. Некоторые идентификаторы могут принадлежать к нескольким категориям.
Я хотел бы провести подсчет crosstab
и заполнить счет идентификаторов, как показано ниже как матрица.
В настоящее время у меня есть один выбор для подсчета, а затем оператор обновления для каждой ячейки, как показано ниже. Есть ли лучший способ сделать это?
select count(*) into Int_Count
from
(
select ID_Member,count(distinct Cat_Name)
from ID_Cat
where Cat_Name='Cat1'
group by ID_Member
having count(distinct Cat)=1
) t;
update crosstab
set Cat1=In_count
where Cat_name='Cat1';