create view temp as
select Uporabnik_idUporabnik1,Uporabnik_idUporabnik2,count(idSporocilo) as st_sporocil
FROM
( SELECT Uporabnik_idUporabnik1,Uporabnik_idUporabnik2,idSporocilo from Sporocilo
UNION
SELECT Uporabnik_idUporabnik2,Uporabnik_idUporabnik1,idSporocilo from Sporocilo
) t
WHERE Uporabnik_idUporabnik1 > Uporabnik_idUporabnik2
GROUP BY Uporabnik_idUporabnik1,Uporabnik_idUporabnik2
UNION с обратным получит количество двусторонних сообщений. Потому что вы будете группировать отправителя, получателя и получателя, отправителя. Проблема сейчас в том, что вы все равно получите два ряда. F.ex:
Uporabnik_idUporabnik1,Uporabnik_idUporabnik2,st_sporocil
1,10,4
10,1,4
Чтобы показать только одну строку, я добавил фильтр Uporabnik_idUporabnik1 > Uporabnik_idUporabnik2
, который покажет только первую строку. Будьте осторожны, потому что это подавит разговоры с самим собой (где отправитель совпадает с получателем)