And I missed it again :-)
OK, hows this?
select field1, field2, count(*)
from (select field1, field2, field3, field4 from yourtable where field1 <= field2
union all
select field2, field1, field4, field3 from yourtable where field1 > field2
) a
group by field1, field2