从审核日志中获取问题的计数

时间:2020-07-20 12:28:55

标签: sql postgresql join

我有两个表,一个表A包含问题,其他表B包含所有问题的日志。 我想获得表A中每个问题的计数。 这里的问题是问题可以在4列的任何一列中

下面是表A

enter image description here

enter image description here

谢谢 桑耶夫

1 个答案:

答案 0 :(得分:1)

如果我理解正确,则可以使用横向联接和聚合:

select submenu, count(*)
from a cross join lateral
     (values (a.submenu1), (s.submenu2), (a.submenu3), (a.submenu4)) v(submenu)
where submenu is not null
group by submenu;

您还可以使用join和聚合:

select b.question, count(*)
from b join
     a
     on b.question in (a.submenu1, s.submenu2, a.submenu3, a.submenu4)
group by b.question;