|
〇〇 发表于 2016-6-1 15:10 ![]()
第14步还可以,然后就不行了
q)t1:t
q)\t do[13;count t1:select (path*100)+id2,b+b2,id:id2 from t1 ...
还不如免费软件
sqlite> WITH
...> d(a,b) as(select 1,1 union all select a+1,b*2 from d where a<25),
...> c AS (
...> SELECT a id, b, round((a+1.5)/5) r,(a-1)%5 c FROM d
...> )
...> ,m AS (
...> SELECT c1.id id1,c2.id id2,c1.b b1,c2.b b2
...> FROM c c1,c c2
...> WHERE (ABS(c1.r-c2.r)=1 and ABS(c1.c-c2.c)=2)or (ABS(c1.r-c2.r)=2 and ABS(c1.c-c2.c)=1)
...> ) --select count(*) from m
...> ,t(path,b,id) AS (
...> SELECT CAST(id AS VARCHAR2(100)),b,id FROM c WHERE id=1
...> UNION ALL
...> SELECT t.path||','||m.id2,t.b+m.b2,m.id2 FROM t,m WHERE t.id=m.id1 AND (b/(b2))%2=0
...> )
...> SELECT count( path) FROM t WHERE t.b=(2<<24)-1;
304
Run Time: real 21.178 user 20.545332 sys 0.265202 |
|