質問編集履歴
7
内容を詳細化
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
** 解決策反映 **
|
2
|
+
|
3
|
+
|
4
|
+
|
1
5
|
### 前提・実現したいこと
|
2
6
|
|
3
7
|
|
@@ -114,13 +118,31 @@
|
|
114
118
|
|
115
119
|
これは書きかけ。。。まだ、想像すら出来ていないっす。
|
116
120
|
|
121
|
+
こんな感じで出来ました
|
122
|
+
|
117
123
|
```SQL
|
118
124
|
|
119
125
|
WITH item_count AS (
|
120
126
|
|
127
|
+
SELECT *, RANK() OVER (PARTITION BY i.use_date, i.user_id, i.item_id ORDER BY i.datetime) AS seq
|
128
|
+
|
129
|
+
FROM (
|
130
|
+
|
121
|
-
SELECT
|
131
|
+
SELECT
|
132
|
+
|
122
|
-
|
133
|
+
item.*,
|
134
|
+
|
135
|
+
TO_CHAR(item.datetime::TIMESTAMP, 'YYYY/MM/DD') AS use_date
|
136
|
+
|
137
|
+
FROM
|
138
|
+
|
123
|
-
|
139
|
+
item_use_history AS item
|
140
|
+
|
141
|
+
WHERE
|
142
|
+
|
143
|
+
item.datetime BETWEEN ('2019/09/01 00:00:00' AND '2019/09/30 23:59:59')
|
144
|
+
|
145
|
+
) AS i
|
124
146
|
|
125
147
|
WHERE TRUE =TRUE
|
126
148
|
|
6
内容を詳細化
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,7 +10,11 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
**SQL内でsequenceを**
|
13
|
+
**SQL内でsequenceを付けたい!**
|
14
|
+
|
15
|
+
カラムAとカラムBが一致する、カラムC毎に連番を振る
|
16
|
+
|
17
|
+
※テーブルでユニークな連番ではなく、特定データグループ内での連番
|
14
18
|
|
15
19
|
|
16
20
|
|
5
内容を詳細化
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,6 +6,8 @@
|
|
6
6
|
|
7
7
|
・もはや、タイトルの通り。。。。SQLでSELECTしたい結果例を示しますので、そちらを参考に
|
8
8
|
|
9
|
+
・テーブルにGROUP BY でCOUNT出来る数と同じ感じにseqを付けたい
|
10
|
+
|
9
11
|
|
10
12
|
|
11
13
|
**SQL内でsequenceを**
|
@@ -44,27 +46,29 @@
|
|
44
46
|
|
45
47
|
実質は、下の表が作れるサブクエリを教えて欲しいです
|
46
48
|
|
49
|
+
**seq箇所を何とか出したい。。。**
|
50
|
+
|
47
|
-
|id|user_id|datetime|item_id|value|seq|
|
51
|
+
|id|user_id|datetime|item_id|value|**seq**|
|
48
52
|
|
49
53
|
|:--|:--|:--|:--|:--|:--|
|
50
54
|
|
51
|
-
|1|101|2019/09/01 10:10:10|1|aaa1|1|
|
55
|
+
|1|101|2019/09/01 10:10:10|1|aaa1|**1**|
|
52
|
-
|
56
|
+
|
53
|
-
|2|102|2019/09/01 10:10:10|1|aaa2|1|
|
57
|
+
|2|102|2019/09/01 10:10:10|1|aaa2|**1**|
|
54
|
-
|
58
|
+
|
55
|
-
|3|103|2019/09/01 10:10:10|1|aaa3|1|
|
59
|
+
|3|103|2019/09/01 10:10:10|1|aaa3|**1**|
|
56
|
-
|
60
|
+
|
57
|
-
|4|101|2019/09/01 11:10:10|2|bbb1|1|
|
61
|
+
|4|101|2019/09/01 11:10:10|2|bbb1|**1**|
|
58
|
-
|
62
|
+
|
59
|
-
|5|102|2019/09/01 11:10:10|2|bbb1|1|
|
63
|
+
|5|102|2019/09/01 11:10:10|2|bbb1|**1**|
|
60
|
-
|
64
|
+
|
61
|
-
|6|103|2019/09/01 11:10:10|2|bbb2|1|
|
65
|
+
|6|103|2019/09/01 11:10:10|2|bbb2|**1**|
|
62
|
-
|
66
|
+
|
63
|
-
|7|101|2019/09/01 12:10:10|1|ccc1|2|
|
67
|
+
|7|101|2019/09/01 12:10:10|1|ccc1|**2**|
|
64
|
-
|
68
|
+
|
65
|
-
|8|102|2019/09/01 12:10:10|1|ccc2|2|
|
69
|
+
|8|102|2019/09/01 12:10:10|1|ccc2|**2**|
|
66
|
-
|
70
|
+
|
67
|
-
|9|103|2019/09/01 12:10:10|1|ccc3|2|
|
71
|
+
|9|103|2019/09/01 12:10:10|1|ccc3|**2**|
|
68
72
|
|
69
73
|
|
70
74
|
|
4
内容を詳細化
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,6 +8,10 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
+
**SQL内でsequenceを**
|
12
|
+
|
13
|
+
|
14
|
+
|
11
15
|
**table:item_use_history(使う対象テーブル:こいつをゴネゴネしたい)**
|
12
16
|
|
13
17
|
|id|user_id|datetime|item_id|value|
|
3
内容を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
**table:item_use_history**
|
11
|
+
**table:item_use_history(使う対象テーブル:こいつをゴネゴネしたい)**
|
12
12
|
|
13
13
|
|id|user_id|datetime|item_id|value|
|
14
14
|
|
@@ -34,7 +34,11 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
-
**select:goal_result**
|
37
|
+
**select:goal_result(サブクエリで作成したい表)**
|
38
|
+
|
39
|
+
最終結果...は、ただSELECTとJOINする想定なので、
|
40
|
+
|
41
|
+
実質は、下の表が作れるサブクエリを教えて欲しいです
|
38
42
|
|
39
43
|
|id|user_id|datetime|item_id|value|seq|
|
40
44
|
|
@@ -60,7 +64,7 @@
|
|
60
64
|
|
61
65
|
|
62
66
|
|
63
|
-
**select:try_result**
|
67
|
+
**select:try_result(まず、カウントしてみましたの結果表)**
|
64
68
|
|
65
69
|
|user_id|use_date|item_id|count(item_id)|
|
66
70
|
|
@@ -188,21 +192,21 @@
|
|
188
192
|
|
189
193
|
**こんな表にしたい!!**
|
190
194
|
|
191
|
-
|user_id|use_date|item_id|seq_1|seq_1_value|seq_2|seq_2_value|
|
195
|
+
|user_id|use_date|item_id|seq_1|seq_1_value|seq_2|seq_2_value|...|
|
192
|
-
|
196
|
+
|
193
|
-
|:--|:--|:--|:--|:--|:--|:--|
|
197
|
+
|:--|:--|:--|:--|:--|:--|:--|:--|
|
194
|
-
|
198
|
+
|
195
|
-
|101|2019/09/01|1|1|aaa1|2|ccc1|
|
199
|
+
|101|2019/09/01|1|1|aaa1|2|ccc1|...|
|
196
|
-
|
200
|
+
|
197
|
-
|102|2019/09/01|1|1|aaa2|2|ccc1|
|
201
|
+
|102|2019/09/01|1|1|aaa2|2|ccc1|...|
|
198
|
-
|
202
|
+
|
199
|
-
|103|2019/09/01|1|1|aaa3|2|ccc1|
|
203
|
+
|103|2019/09/01|1|1|aaa3|2|ccc1|...|
|
200
|
-
|
204
|
+
|
201
|
-
|101|2019/09/01|2|1|bbb2|NULL|NULL|
|
205
|
+
|101|2019/09/01|2|1|bbb2|NULL|NULL|...|
|
202
|
-
|
206
|
+
|
203
|
-
|102|2019/09/01|2|1|bbb2|NULL|NULL|
|
207
|
+
|102|2019/09/01|2|1|bbb2|NULL|NULL|...|
|
204
|
-
|
208
|
+
|
205
|
-
|103|2019/09/01|2|1|bbb2|NULL|NULL|
|
209
|
+
|103|2019/09/01|2|1|bbb2|NULL|NULL|...|
|
206
210
|
|
207
211
|
|
208
212
|
|
2
内容を詳細化
test
CHANGED
File without changes
|
test
CHANGED
@@ -177,3 +177,35 @@
|
|
177
177
|
|
178
178
|
|
179
179
|
過不足あれば、コメントくださいませ
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
### 最終的なゴール
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
**こんな表にしたい!!**
|
190
|
+
|
191
|
+
|user_id|use_date|item_id|seq_1|seq_1_value|seq_2|seq_2_value|
|
192
|
+
|
193
|
+
|:--|:--|:--|:--|:--|:--|:--|
|
194
|
+
|
195
|
+
|101|2019/09/01|1|1|aaa1|2|ccc1|
|
196
|
+
|
197
|
+
|102|2019/09/01|1|1|aaa2|2|ccc1|
|
198
|
+
|
199
|
+
|103|2019/09/01|1|1|aaa3|2|ccc1|
|
200
|
+
|
201
|
+
|101|2019/09/01|2|1|bbb2|NULL|NULL|
|
202
|
+
|
203
|
+
|102|2019/09/01|2|1|bbb2|NULL|NULL|
|
204
|
+
|
205
|
+
|103|2019/09/01|2|1|bbb2|NULL|NULL|
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
なので、その前にこんな感じに出せるようにサブクエリを作る!
|
210
|
+
|
211
|
+
で。。。固まっています。
|
1
タイトル文言の変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
SQLで特定カラム(複数)をGROUP BYした際に、COUNT関数で取れる数をNO GROUPの時にシーケンス的な扱いで連番を振りたい(重複
|
1
|
+
SQLで特定カラム(複数)をGROUP BYした際に、COUNT関数で取れる数をNO GROUPの時にシーケンス的な扱いで連番を振りたい(表内重複許可/組合内重複不可_連番)
|
test
CHANGED
File without changes
|