Одним из возможных способов является использование условного агрегирования, например ::100100
select
t.week,
sum(iif(t.category = "A", 1, 0)) as A,
sum(iif(t.category = "B", 1, 0)) as B,
sum(iif(t.category = "C", 1, 0)) as C
from
YourTable t
group by
t.week
Если вы хотите сгруппировать несколько категорий вместе, чтобы они были перечислены как одна категория, вы можете использовать выражение in
в тестовых выражениях для операторов iif
:
select
t.week,
sum(iif(t.category = "A", 1, 0)) as A,
sum(iif(t.category = "B", 1, 0)) as B,
sum(iif(t.category = "C", 1, 0)) as C,
sum(iif(t.category in ("D","E","F"), 1, 0)) as D
from
YourTable t
group by
t.week
В качестве альтернативы, вы можете использовать запрос кросс-таблицы, например ::10000
transform count(*)
select t.week
from YourTable t
group by t.week
pivot t.category;
Измените YourTable
на имя вашей таблицы.