|
用4个4位4进制数,已经很多了,考虑上面c程序的结果,sql估计很难
D with a as(select i,[i/pow(4,4-x)::int%4 for x in range(1,5)] AS a from generate_series(0,254)t(i)),
> r as(select a.i n1,b.i n2,count(*)cnt from a,a b, generate_series(1,4)t(x) where a.i<b.i and a.a[x]<>b.a[x] group by a.i,b.i having count(*)>=2)
> select count(*) from r limit 10;
┌──────────────┐
│ count_star() │
│ int64 │
├──────────────┤
│ 30861 │
└──────────────┘
with a as(select i,[i/pow(4,4-x)::int考虑%4 for x in range(1,5)] AS a from generate_series(0,254)t(i)),
r as(select a.i n1,b.i n2,count(*)cnt from a,a b, generate_series(1,4)t(x) where a.i<b.i and a.a[x]<>b.a[x] group by a.i,b.i having count(*)>=2)
select n1,count(*) from r group by n1 order by n1 limit 10 ;
┌───────┬──────────────┐
│ n1 │ count_star() │
│ int64 │ int64 │
├───────┼──────────────┤
│ 0 │ 242 │
│ 1 │ 242 │
│ 2 │ 242 │
│ 3 │ 242 │
│ 4 │ 239 │
│ 5 │ 239 │
│ 6 │ 239 │
│ 7 │ 239 │
│ 8 │ 236 │
│ 9 │ 236 │
├───────┴──────────────┤
│ 10 rows 2 columns │
└──────────────────────┘ |
|