回答編集履歴
16
修正
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
(
|
5
|
+
(PARENT_NO)ごとのQTYの計と(ITEM_ID,PARENT_NO)ごとのQTYの計を一覧にしたものとして回答すると以下の様になるかと。
|
6
6
|
|
7
7
|
|
8
8
|
|
15
訂正
test
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
select *
|
22
22
|
|
23
|
-
,(select sum(subtotal) from iv_sub where
|
23
|
+
,(select sum(subtotal) from iv_sub where PARENT_NO=sub.PARENT_NO) as total
|
24
24
|
|
25
25
|
from iv_sub as sub
|
26
26
|
|
@@ -66,7 +66,7 @@
|
|
66
66
|
|
67
67
|
select ITEM_ID, PARENT_NO, subtotal
|
68
68
|
|
69
|
-
, sum(subtotal) over(partition by
|
69
|
+
, sum(subtotal) over(partition by PARENT_NO) as total
|
70
70
|
|
71
71
|
from (
|
72
72
|
|
14
訂正
test
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
select *
|
22
22
|
|
23
|
-
,(select sum(subtotal) from iv_sub where ITEM_ID=sub.
|
23
|
+
,(select sum(subtotal) from iv_sub where ITEM_ID=sub.ITEM_ID) as total
|
24
24
|
|
25
25
|
from iv_sub as sub
|
26
26
|
|
13
推敲
test
CHANGED
@@ -26,7 +26,9 @@
|
|
26
26
|
|
27
27
|
```
|
28
28
|
|
29
|
-
|
29
|
+
質問修正後追加その1
|
30
|
+
|
31
|
+
---
|
30
32
|
|
31
33
|
TABLE_Aの行毎に、その行のPARENT_NOと同じデータの集計をサブクエリーで取り、そのサブクエリーをITEM_IDとPARENT_NOの集計でグルーピングし、QTYの集計を取る。
|
32
34
|
|
@@ -52,7 +54,9 @@
|
|
52
54
|
|
53
55
|
```
|
54
56
|
|
55
|
-
|
57
|
+
質問修正後追加その2
|
58
|
+
|
59
|
+
---
|
56
60
|
|
57
61
|
修正後の結果であれば、最初に書いたSQLでも良さそう。
|
58
62
|
|
12
修正
test
CHANGED
@@ -54,7 +54,7 @@
|
|
54
54
|
|
55
55
|
------質問修正後追加その2
|
56
56
|
|
57
|
-
修正後の結果であれば、最初に書いたSQLで良さそう。
|
57
|
+
修正後の結果であれば、最初に書いたSQLでも良さそう。
|
58
58
|
|
59
59
|
分析関数を使うとしたら、
|
60
60
|
|
11
修正
test
CHANGED
@@ -60,7 +60,11 @@
|
|
60
60
|
|
61
61
|
```SQL
|
62
62
|
|
63
|
-
|
63
|
+
select ITEM_ID, PARENT_NO, subtotal
|
64
|
+
|
65
|
+
, sum(subtotal) over(partition by ITEM_ID) as total
|
66
|
+
|
67
|
+
from (
|
64
68
|
|
65
69
|
select ITEM_ID, PARENT_NO, sum(QTY) as subtotal
|
66
70
|
|
@@ -68,16 +72,8 @@
|
|
68
72
|
|
69
73
|
group by ITEM_ID,PARENT_NO
|
70
74
|
|
71
|
-
)
|
72
|
-
|
73
|
-
select ITEM_ID, PARENT_NO, subtotal
|
74
|
-
|
75
|
-
, sum(subtotal) over(partition by ITEM_ID) as total
|
76
|
-
|
77
|
-
|
75
|
+
) as sub
|
78
76
|
|
79
77
|
```
|
80
78
|
|
81
79
|
になるかな。
|
82
|
-
|
83
|
-
CTEを使用しているので、コストはあまり変わらないと予想。
|
10
修正
test
CHANGED
@@ -55,3 +55,29 @@
|
|
55
55
|
------質問修正後追加その2
|
56
56
|
|
57
57
|
修正後の結果であれば、最初に書いたSQLで良さそう。
|
58
|
+
|
59
|
+
分析関数を使うとしたら、
|
60
|
+
|
61
|
+
```SQL
|
62
|
+
|
63
|
+
with iv_sub as (
|
64
|
+
|
65
|
+
select ITEM_ID, PARENT_NO, sum(QTY) as subtotal
|
66
|
+
|
67
|
+
from TABLE_A
|
68
|
+
|
69
|
+
group by ITEM_ID,PARENT_NO
|
70
|
+
|
71
|
+
)
|
72
|
+
|
73
|
+
select ITEM_ID, PARENT_NO, subtotal
|
74
|
+
|
75
|
+
, sum(subtotal) over(partition by ITEM_ID) as total
|
76
|
+
|
77
|
+
from iv_sub
|
78
|
+
|
79
|
+
```
|
80
|
+
|
81
|
+
になるかな。
|
82
|
+
|
83
|
+
CTEを使用しているので、コストはあまり変わらないと予想。
|
9
修正
test
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
```
|
28
28
|
|
29
|
-
---質問修正後追加
|
29
|
+
---質問修正後追加その1
|
30
30
|
|
31
31
|
TABLE_Aの行毎に、その行のPARENT_NOと同じデータの集計をサブクエリーで取り、そのサブクエリーをITEM_IDとPARENT_NOの集計でグルーピングし、QTYの集計を取る。
|
32
32
|
|
@@ -51,3 +51,7 @@
|
|
51
51
|
group by ITEM_ID, parent_total
|
52
52
|
|
53
53
|
```
|
54
|
+
|
55
|
+
------質問修正後追加その2
|
56
|
+
|
57
|
+
修正後の結果であれば、最初に書いたSQLで良さそう。
|
8
修正
test
CHANGED
@@ -51,11 +51,3 @@
|
|
51
51
|
group by ITEM_ID, parent_total
|
52
52
|
|
53
53
|
```
|
54
|
-
|
55
|
-
上記が正しいなら、希望の結果は結合条件(相関問い合わせでの条件)なしには行えないので、分析関数は目的には合わないと思われます。
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
※sum()でover(PRTITION BY)を使用したい場合、通常はselect 項目にもPRTITIONする項目があるはずで、DISTINCTで重複が省略できたとしても、それはデータがたまたまそうだっただけではないでしょうか。
|
60
|
-
|
61
|
-
|
7
修正
test
CHANGED
@@ -56,6 +56,6 @@
|
|
56
56
|
|
57
57
|
|
58
58
|
|
59
|
-
※sum()でover(PRTITION BY)を使用し
|
59
|
+
※sum()でover(PRTITION BY)を使用したい場合、通常はselect 項目にもPRTITIONする項目があるはずで、DISTINCTで重複が省略できたとしても、それはデータがたまたまそうだっただけではないでしょうか。
|
60
60
|
|
61
|
-
|
61
|
+
|
6
修正
test
CHANGED
@@ -53,3 +53,9 @@
|
|
53
53
|
```
|
54
54
|
|
55
55
|
上記が正しいなら、希望の結果は結合条件(相関問い合わせでの条件)なしには行えないので、分析関数は目的には合わないと思われます。
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
※sum()でover(PRTITION BY)を使用しgroup byを省略したいなら、select 項目にもPRTITIONする項目が無いと意味は無いものと思います。
|
60
|
+
|
61
|
+
DISTINCTで重複が省略できたとしても、それはデータがたまたまそうだっただけのことだと思われます。
|
5
修正
test
CHANGED
@@ -52,4 +52,4 @@
|
|
52
52
|
|
53
53
|
```
|
54
54
|
|
55
|
-
上記が正しいなら、希望の結果は結合条件なしには行えないので、分析関数は目的には合わないと思われます。
|
55
|
+
上記が正しいなら、希望の結果は結合条件(相関問い合わせでの条件)なしには行えないので、分析関数は目的には合わないと思われます。
|
4
修正
test
CHANGED
@@ -51,3 +51,5 @@
|
|
51
51
|
group by ITEM_ID, parent_total
|
52
52
|
|
53
53
|
```
|
54
|
+
|
55
|
+
上記が正しいなら、希望の結果は結合条件なしには行えないので、分析関数は目的には合わないと思われます。
|
3
修正
test
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
|
29
29
|
---質問修正後追加
|
30
30
|
|
31
|
-
TABLE_Aの行毎に、その行のPARENT_NOの集計をサブクエリーで取り、そのサブクエリーをITEM_IDとPARENT_NOの集計でグルーピングし、QTYの集計を取る。
|
31
|
+
TABLE_Aの行毎に、その行のPARENT_NOと同じデータの集計をサブクエリーで取り、そのサブクエリーをITEM_IDとPARENT_NOの集計でグルーピングし、QTYの集計を取る。
|
32
32
|
|
33
33
|
```SQL
|
34
34
|
|
2
追記
test
CHANGED
@@ -25,3 +25,29 @@
|
|
25
25
|
from iv_sub as sub
|
26
26
|
|
27
27
|
```
|
28
|
+
|
29
|
+
---質問修正後追加
|
30
|
+
|
31
|
+
TABLE_Aの行毎に、その行のPARENT_NOの集計をサブクエリーで取り、そのサブクエリーをITEM_IDとPARENT_NOの集計でグルーピングし、QTYの集計を取る。
|
32
|
+
|
33
|
+
```SQL
|
34
|
+
|
35
|
+
select ITEM_ID
|
36
|
+
|
37
|
+
, sum(QTY) as item_total
|
38
|
+
|
39
|
+
, parent_total
|
40
|
+
|
41
|
+
from (
|
42
|
+
|
43
|
+
select ITEM_ID, QTY
|
44
|
+
|
45
|
+
, (select sum(QTY) from TABLE_A where PARENT_NO=item.PARENT_NO) as parent_total
|
46
|
+
|
47
|
+
from TABLE_A as item
|
48
|
+
|
49
|
+
) as caluc
|
50
|
+
|
51
|
+
group by ITEM_ID, parent_total
|
52
|
+
|
53
|
+
```
|
1
推敲
test
CHANGED
@@ -24,6 +24,4 @@
|
|
24
24
|
|
25
25
|
from iv_sub as sub
|
26
26
|
|
27
|
-
コード
|
28
|
-
|
29
27
|
```
|