質問編集履歴

3

追記

2018/01/16 07:45

投稿

trafalbad
trafalbad

スコア303

test CHANGED
File without changes
test CHANGED
@@ -93,3 +93,41 @@
93
93
  追記
94
94
 
95
95
  テーブルは与えられているもので、データ型や内容等は変更できないものとして、テーブルの内容を変更せずに条件を満たすことを考えてます。
96
+
97
+
98
+
99
+ **解決方法メモ**
100
+
101
+ 条件
102
+
103
+ delete_flg=0
104
+
105
+ install_datetime LIKE '4%
106
+
107
+ timestampがinstalldatetimeから3日以内の範囲であること
108
+
109
+ login_logのuser_idが3回以上表示されていること
110
+
111
+
112
+
113
+ 手順1.条件を分解、各条件を満たすために順に割り当てていく
114
+
115
+ 手順2.GROUP BY句でグループ分けするものを決める、他はWHERE句で指定
116
+
117
+ ```SQL
118
+
119
+ SELECT L.user_id, U.install_datetime , COUNT(L.user_id)
120
+
121
+ FROM login_log AS L INNER JOIN user_master AS U
122
+
123
+ ON L.user_id=U.user_id
124
+
125
+ WHERE STR_TO_DATE(L.timestamp,'%m/%d/%y %H:%i') BETWEEN STR_TO_DATE(U.install_datetime,'%m/%d/%y %H:%i') and STR_TO_DATE(U.install_datetime,'%m/%d/%y %H:%i') + interval 3 day AND
126
+
127
+ U.delete_flg=0 AND U.install_datetime LIKE '4%'
128
+
129
+ GROUP BY L.user_id
130
+
131
+ HAVING COUNT(*)>=3
132
+
133
+ ```

2

変更

2018/01/16 07:44

投稿

trafalbad
trafalbad

スコア303

test CHANGED
File without changes
test CHANGED
@@ -80,11 +80,11 @@
80
80
 
81
81
  (10002, '3/21/16 12:50'),
82
82
 
83
- (10003, '5/23/16 11:00'),
83
+ (10003, '3/23/16 11:00'),
84
84
 
85
- (10003, '5/24/16 9:10'),
85
+ (10003, '3/24/16 9:10'),
86
86
 
87
- (10003, '5/24/16 11:20');
87
+ (10003, '3/24/16 11:20');
88
88
 
89
89
 
90
90
 

1

追記、変更

2018/01/15 14:13

投稿

trafalbad
trafalbad

スコア303

test CHANGED
File without changes
test CHANGED
@@ -6,11 +6,11 @@
6
6
 
7
7
  ```SQL
8
8
 
9
- SELECT install_datetime, user_id
9
+ SELECT install_datetime AS days, user_id
10
10
 
11
11
  FROM user_master
12
12
 
13
- WHERE delete_flg=0 AND install_datetime LIKE '3%'
13
+ WHERE delete_flg=0 AND days LIKE '3%'
14
14
 
15
15
  GROUP BY user_id
16
16
 
@@ -89,3 +89,7 @@
89
89
 
90
90
 
91
91
  ```
92
+
93
+ 追記
94
+
95
+ テーブルは与えられているもので、データ型や内容等は変更できないものとして、テーブルの内容を変更せずに条件を満たすことを考えてます。