回答編集履歴

5

冗長な部分を修正

2018/06/11 06:25

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -24,8 +24,6 @@
24
24
 
25
25
  ```SQL
26
26
 
27
- with limits as(select trunc(count(*)*0.5) as limits from master)
28
-
29
27
  select *
30
28
 
31
29
  from (
@@ -38,7 +36,7 @@
38
36
 
39
37
  ) master
40
38
 
41
- where seq <= (select limits from limits)
39
+ where seq <= (select trunc(count(*)*0.1) from master)
42
40
 
43
41
  ```
44
42
 

4

推敲

2018/06/11 06:25

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -42,4 +42,4 @@
42
42
 
43
43
  ```
44
44
 
45
- 実行計画にあまり変わりは無いと思われるが、インライン内のサブクエリーでは無いパターン
45
+ 実行計画にあまり変わりは無いと思われるが、インラインビュー内のサブクエリーでは無いパターン

3

推敲

2018/06/11 06:23

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -42,4 +42,4 @@
42
42
 
43
43
  ```
44
44
 
45
- 実行計画にあまり変わりは無いと思われるが、サブクエリーでは無いパターン
45
+ 実行計画にあまり変わりは無いと思われるが、インライン内のサブクエリーでは無いパターン

2

パターン追加

2018/06/11 06:22

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -19,3 +19,27 @@
19
19
  where seq <= limits
20
20
 
21
21
  ```
22
+
23
+ #別パターン
24
+
25
+ ```SQL
26
+
27
+ with limits as(select trunc(count(*)*0.5) as limits from master)
28
+
29
+ select *
30
+
31
+ from (
32
+
33
+ select *
34
+
35
+ , row_number() over(order by random()) seq
36
+
37
+ from master
38
+
39
+ ) master
40
+
41
+ where seq <= (select limits from limits)
42
+
43
+ ```
44
+
45
+ 実行計画にあまり変わりは無いと思われるが、サブクエリーでは無いパターン

1

エイリアスの修正

2018/06/11 06:19

投稿

sazi
sazi

スコア25195

test CHANGED
@@ -10,14 +10,12 @@
10
10
 
11
11
  , row_number() over(order by random()) seq
12
12
 
13
- ,(select trunc(count(*)*0.1) from master) pages
13
+ ,(select trunc(count(*)*0.1) from master) limits
14
14
 
15
15
  from master
16
16
 
17
17
  ) master
18
18
 
19
- where seq <= pages
19
+ where seq <= limits
20
-
21
-
22
20
 
23
21
  ```