質問編集履歴

7

内容を詳細化

2019/10/10 07:09

投稿

tama_yn0815
tama_yn0815

スコア143

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
- FROM item_use_history
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

内容を詳細化

2019/10/10 07:09

投稿

tama_yn0815
tama_yn0815

スコア143

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

内容を詳細化

2019/10/10 06:02

投稿

tama_yn0815
tama_yn0815

スコア143

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

内容を詳細化

2019/10/10 06:00

投稿

tama_yn0815
tama_yn0815

スコア143

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

内容を修正

2019/10/10 05:57

投稿

tama_yn0815
tama_yn0815

スコア143

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

内容を詳細化

2019/10/10 05:31

投稿

tama_yn0815
tama_yn0815

スコア143

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

タイトル文言の変更

2019/10/10 05:26

投稿

tama_yn0815
tama_yn0815

スコア143

test CHANGED
@@ -1 +1 @@
1
- SQLで特定カラム(複数)をGROUP BYした際に、COUNT関数で取れる数をNO GROUPの時にシーケンス的な扱いで連番を振りたい(重複連番)
1
+ SQLで特定カラム(複数)をGROUP BYした際に、COUNT関数で取れる数をNO GROUPの時にシーケンス的な扱いで連番を振りたい(表内重複許可/組合内重複不可_連番)
test CHANGED
File without changes