質問編集履歴
7
内容を詳細化
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
** 解決策反映 **
|
2
|
+
|
1
3
|
### 前提・実現したいこと
|
2
4
|
|
3
5
|
・使用環境:PstgreSQL v.9.5
|
@@ -56,10 +58,19 @@
|
|
56
58
|
|
57
59
|
** goal_result **
|
58
60
|
これは書きかけ。。。まだ、想像すら出来ていないっす。
|
61
|
+
こんな感じで出来ました
|
59
62
|
```SQL
|
60
63
|
WITH item_count AS (
|
64
|
+
SELECT *, RANK() OVER (PARTITION BY i.use_date, i.user_id, i.item_id ORDER BY i.datetime) AS seq
|
65
|
+
FROM (
|
61
|
-
|
66
|
+
SELECT
|
67
|
+
item.*,
|
68
|
+
TO_CHAR(item.datetime::TIMESTAMP, 'YYYY/MM/DD') AS use_date
|
69
|
+
FROM
|
62
|
-
|
70
|
+
item_use_history AS item
|
71
|
+
WHERE
|
72
|
+
item.datetime BETWEEN ('2019/09/01 00:00:00' AND '2019/09/30 23:59:59')
|
73
|
+
) AS i
|
63
74
|
WHERE TRUE =TRUE
|
64
75
|
--GROUP BY
|
65
76
|
--ORDER BY
|
6
内容を詳細化
title
CHANGED
File without changes
|
body
CHANGED
@@ -4,7 +4,9 @@
|
|
4
4
|
・もはや、タイトルの通り。。。。SQLでSELECTしたい結果例を示しますので、そちらを参考に
|
5
5
|
・テーブルにGROUP BY でCOUNT出来る数と同じ感じにseqを付けたい
|
6
6
|
|
7
|
-
**SQL内でsequenceを**
|
7
|
+
**SQL内でsequenceを付けたい!**
|
8
|
+
カラムAとカラムBが一致する、カラムC毎に連番を振る
|
9
|
+
※テーブルでユニークな連番ではなく、特定データグループ内での連番
|
8
10
|
|
9
11
|
**table:item_use_history(使う対象テーブル:こいつをゴネゴネしたい)**
|
10
12
|
|id|user_id|datetime|item_id|value|
|
5
内容を詳細化
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
・使用環境:PstgreSQL v.9.5
|
4
4
|
・もはや、タイトルの通り。。。。SQLでSELECTしたい結果例を示しますので、そちらを参考に
|
5
|
+
・テーブルにGROUP BY でCOUNT出来る数と同じ感じにseqを付けたい
|
5
6
|
|
6
7
|
**SQL内でsequenceを**
|
7
8
|
|
@@ -21,17 +22,18 @@
|
|
21
22
|
**select:goal_result(サブクエリで作成したい表)**
|
22
23
|
最終結果...は、ただSELECTとJOINする想定なので、
|
23
24
|
実質は、下の表が作れるサブクエリを教えて欲しいです
|
25
|
+
**seq箇所を何とか出したい。。。**
|
24
|
-
|id|user_id|datetime|item_id|value|seq|
|
26
|
+
|id|user_id|datetime|item_id|value|**seq**|
|
25
27
|
|:--|:--|:--|:--|:--|:--|
|
26
|
-
|1|101|2019/09/01 10:10:10|1|aaa1|1|
|
28
|
+
|1|101|2019/09/01 10:10:10|1|aaa1|**1**|
|
27
|
-
|2|102|2019/09/01 10:10:10|1|aaa2|1|
|
29
|
+
|2|102|2019/09/01 10:10:10|1|aaa2|**1**|
|
28
|
-
|3|103|2019/09/01 10:10:10|1|aaa3|1|
|
30
|
+
|3|103|2019/09/01 10:10:10|1|aaa3|**1**|
|
29
|
-
|4|101|2019/09/01 11:10:10|2|bbb1|1|
|
31
|
+
|4|101|2019/09/01 11:10:10|2|bbb1|**1**|
|
30
|
-
|5|102|2019/09/01 11:10:10|2|bbb1|1|
|
32
|
+
|5|102|2019/09/01 11:10:10|2|bbb1|**1**|
|
31
|
-
|6|103|2019/09/01 11:10:10|2|bbb2|1|
|
33
|
+
|6|103|2019/09/01 11:10:10|2|bbb2|**1**|
|
32
|
-
|7|101|2019/09/01 12:10:10|1|ccc1|2|
|
34
|
+
|7|101|2019/09/01 12:10:10|1|ccc1|**2**|
|
33
|
-
|8|102|2019/09/01 12:10:10|1|ccc2|2|
|
35
|
+
|8|102|2019/09/01 12:10:10|1|ccc2|**2**|
|
34
|
-
|9|103|2019/09/01 12:10:10|1|ccc3|2|
|
36
|
+
|9|103|2019/09/01 12:10:10|1|ccc3|**2**|
|
35
37
|
|
36
38
|
**select:try_result(まず、カウントしてみましたの結果表)**
|
37
39
|
|user_id|use_date|item_id|count(item_id)|
|
4
内容を詳細化
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
・使用環境:PstgreSQL v.9.5
|
4
4
|
・もはや、タイトルの通り。。。。SQLでSELECTしたい結果例を示しますので、そちらを参考に
|
5
5
|
|
6
|
+
**SQL内でsequenceを**
|
7
|
+
|
6
8
|
**table:item_use_history(使う対象テーブル:こいつをゴネゴネしたい)**
|
7
9
|
|id|user_id|datetime|item_id|value|
|
8
10
|
|:--|:--|:--|:--|:--|
|
3
内容を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
・使用環境:PstgreSQL v.9.5
|
4
4
|
・もはや、タイトルの通り。。。。SQLでSELECTしたい結果例を示しますので、そちらを参考に
|
5
5
|
|
6
|
-
**table:item_use_history**
|
6
|
+
**table:item_use_history(使う対象テーブル:こいつをゴネゴネしたい)**
|
7
7
|
|id|user_id|datetime|item_id|value|
|
8
8
|
|:--|:--|:--|:--|:--|
|
9
9
|
|1|101|2019/09/01 10:10:10|1|aaa1|
|
@@ -16,7 +16,9 @@
|
|
16
16
|
|8|102|2019/09/01 12:10:10|1|ccc2|
|
17
17
|
|9|103|2019/09/01 12:10:10|1|ccc3|
|
18
18
|
|
19
|
-
**select:goal_result**
|
19
|
+
**select:goal_result(サブクエリで作成したい表)**
|
20
|
+
最終結果...は、ただSELECTとJOINする想定なので、
|
21
|
+
実質は、下の表が作れるサブクエリを教えて欲しいです
|
20
22
|
|id|user_id|datetime|item_id|value|seq|
|
21
23
|
|:--|:--|:--|:--|:--|:--|
|
22
24
|
|1|101|2019/09/01 10:10:10|1|aaa1|1|
|
@@ -29,7 +31,7 @@
|
|
29
31
|
|8|102|2019/09/01 12:10:10|1|ccc2|2|
|
30
32
|
|9|103|2019/09/01 12:10:10|1|ccc3|2|
|
31
33
|
|
32
|
-
**select:try_result**
|
34
|
+
**select:try_result(まず、カウントしてみましたの結果表)**
|
33
35
|
|user_id|use_date|item_id|count(item_id)|
|
34
36
|
|:--|:--|:--|:--|
|
35
37
|
|101|2019/09/01|1|2|
|
@@ -93,14 +95,14 @@
|
|
93
95
|
### 最終的なゴール
|
94
96
|
|
95
97
|
**こんな表にしたい!!**
|
96
|
-
|user_id|use_date|item_id|seq_1|seq_1_value|seq_2|seq_2_value|
|
98
|
+
|user_id|use_date|item_id|seq_1|seq_1_value|seq_2|seq_2_value|...|
|
97
|
-
|:--|:--|:--|:--|:--|:--|:--|
|
99
|
+
|:--|:--|:--|:--|:--|:--|:--|:--|
|
98
|
-
|101|2019/09/01|1|1|aaa1|2|ccc1|
|
100
|
+
|101|2019/09/01|1|1|aaa1|2|ccc1|...|
|
99
|
-
|102|2019/09/01|1|1|aaa2|2|ccc1|
|
101
|
+
|102|2019/09/01|1|1|aaa2|2|ccc1|...|
|
100
|
-
|103|2019/09/01|1|1|aaa3|2|ccc1|
|
102
|
+
|103|2019/09/01|1|1|aaa3|2|ccc1|...|
|
101
|
-
|101|2019/09/01|2|1|bbb2|NULL|NULL|
|
103
|
+
|101|2019/09/01|2|1|bbb2|NULL|NULL|...|
|
102
|
-
|102|2019/09/01|2|1|bbb2|NULL|NULL|
|
104
|
+
|102|2019/09/01|2|1|bbb2|NULL|NULL|...|
|
103
|
-
|103|2019/09/01|2|1|bbb2|NULL|NULL|
|
105
|
+
|103|2019/09/01|2|1|bbb2|NULL|NULL|...|
|
104
106
|
|
105
107
|
なので、その前にこんな感じに出せるようにサブクエリを作る!
|
106
108
|
で。。。固まっています。
|
2
内容を詳細化
title
CHANGED
File without changes
|
body
CHANGED
@@ -87,4 +87,20 @@
|
|
87
87
|
**row_number() over()**
|
88
88
|
これを調べているところ
|
89
89
|
|
90
|
-
過不足あれば、コメントくださいませ
|
90
|
+
過不足あれば、コメントくださいませ
|
91
|
+
|
92
|
+
|
93
|
+
### 最終的なゴール
|
94
|
+
|
95
|
+
**こんな表にしたい!!**
|
96
|
+
|user_id|use_date|item_id|seq_1|seq_1_value|seq_2|seq_2_value|
|
97
|
+
|:--|:--|:--|:--|:--|:--|:--|
|
98
|
+
|101|2019/09/01|1|1|aaa1|2|ccc1|
|
99
|
+
|102|2019/09/01|1|1|aaa2|2|ccc1|
|
100
|
+
|103|2019/09/01|1|1|aaa3|2|ccc1|
|
101
|
+
|101|2019/09/01|2|1|bbb2|NULL|NULL|
|
102
|
+
|102|2019/09/01|2|1|bbb2|NULL|NULL|
|
103
|
+
|103|2019/09/01|2|1|bbb2|NULL|NULL|
|
104
|
+
|
105
|
+
なので、その前にこんな感じに出せるようにサブクエリを作る!
|
106
|
+
で。。。固まっています。
|
1
タイトル文言の変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
SQLで特定カラム(複数)をGROUP BYした際に、COUNT関数で取れる数をNO GROUPの時にシーケンス的な扱いで連番を振りたい(重複
|
1
|
+
SQLで特定カラム(複数)をGROUP BYした際に、COUNT関数で取れる数をNO GROUPの時にシーケンス的な扱いで連番を振りたい(表内重複許可/組合内重複不可_連番)
|
body
CHANGED
File without changes
|