Редактировать: Перечитав свой вопрос, это то, что вы ищете? Количество элементов из data_table, где существует запись в category_table для категорий 1 и 2?
select
count(*)
from
data_table d
inner join category_table c1
on d.data_id = c1.data_id
inner join category_table c2
on d.data_id = c2.data_id
where
c1.cat_id = 1
c2.cat_id = 2
(старый ответ под этим ...)
Если вам нужен прямой подсчет всех записей:
select
count(*)
from
data_table d
inner join category_table c
on d.data_id = c.data_id
where
c.cat_id in (1, 2)
Если вы хотите подсчитать для каждой категории:
select
c.cat_id, count(*)
from
data_table d
inner join category_table c
on d.data_id = c.data_id
where
c.cat_id in (1, 2)
group by
c.cat_id