我有下表-
ID A1 A2 A3 A4 A5 A6
1 324 243 3432 23423 342 342
2 342 242 4345 23423 324 342
我可以取消嵌套此表,以便给我所有数字的计数-
324 2
243 1
3432 1
23423 1
342 3
242 1
4345 1
23423 1
但是我如何才能只对同一行中的数字进行1次计数。例如,这是我期望的输出-
324 2
243 1
3432 1
23423 1
342 2
242 1
4345 1
23423 1
342
是2
,因为-
1)在第一行。
2)它在第二行中出现2次,但我只想计数一次。
答案 0 :(得分:0)
只需使用count(distinct)
:
select v.a, count(distinct t.id)
from t cross join lateral
(values (a1), (a2), (a3), (a4), (a5), (a6)
) v(a)
group by v.a;
Here是db <>小提琴。