|
ibm 570 aix 11g:
SQL> WITH t0 AS (
2 SELECT 2*ROWNUM+1 rn FROM DUAL CONNECT BY ROWNUM <= 1000000-1
3 ),
4 t as(SELECT rn from t0 where mod(rn,3)<>0 and mod(rn,5)<>0 and mod(rn,7)<>0)
5 SELECT COUNT(*)+1+3
6 FROM (SELECT rn from t
7 MINUS
8 SELECT t1.rn * t2.rn
9 FROM t t1, t t2
10 WHERE t1.rn <= t2.rn
11 AND t1.rn <= SQRT(2000000)
12 AND t1.rn * t2.rn <2000000
13 )
14 /
COUNT(*)+1+3
------------
148933
已用时间: 00: 01: 05.61
windows
10g xe
SQL> WITH t0 AS (
2 SELECT 2*ROWNUM+1 rn FROM DUAL CONNECT BY ROWNUM <= 1000000-1
3 ),
4 t as(SELECT rn from t0 where mod(rn,3)<>0 and mod(rn,5)<>0 and mod(rn,7)<>0)
5 SELECT COUNT(*)+1+3
6 FROM (SELECT rn from t
7 MINUS
8 SELECT t1.rn * t2.rn
9 FROM t t1, t t2
10 WHERE t1.rn <= t2.rn
11 AND t1.rn <= SQRT(2000000)
12 AND t1.rn * t2.rn <2000000
13 )
14 /
COUNT(*)+1+3
------------
148933
Elapsed: 00:01:19.75 |
|