回答編集履歴
3
ちょうせい
answer
CHANGED
@@ -34,4 +34,28 @@
|
|
34
34
|
|user_id|one_day|two_day|three_day|
|
35
35
|
|--:|--:|--:|--:|
|
36
36
|
|10|1|1|0|
|
37
|
-
|20|1|0|0|
|
37
|
+
|20|1|0|0|
|
38
|
+
|
39
|
+
# true/false
|
40
|
+
カウントしていた結果を0より大きいかどうかで判断してはどうでしょうか?
|
41
|
+
```SQL
|
42
|
+
SELECT
|
43
|
+
user_id,
|
44
|
+
SUM(CASE SUBSTRING(created_at, 1, 10)
|
45
|
+
WHEN '2019-11-01' THEN 1
|
46
|
+
ELSE 0
|
47
|
+
END)>0 AS one_day,
|
48
|
+
SUM(CASE SUBSTRING(created_at, 1, 10)
|
49
|
+
WHEN '2019-11-02' THEN 1
|
50
|
+
ELSE 0
|
51
|
+
END)>0 AS two_day,
|
52
|
+
SUM(CASE SUBSTRING(created_at, 1, 10)
|
53
|
+
WHEN '2019-11-03' THEN 1
|
54
|
+
ELSE 0
|
55
|
+
END)>0 AS three_day
|
56
|
+
FROM
|
57
|
+
posts
|
58
|
+
WHERE
|
59
|
+
DATE(SUBSTRING(created_at,1,10)) BETWEEN DATE('2019-11-01') AND DATE('2019-11-03')
|
60
|
+
GROUP BY user_id
|
61
|
+
```
|
2
けっか
answer
CHANGED
@@ -28,4 +28,10 @@
|
|
28
28
|
WHERE
|
29
29
|
DATE(SUBSTRING(created_at,1,10)) BETWEEN DATE('2019-11-01') AND DATE('2019-11-03')
|
30
30
|
GROUP BY user_id
|
31
|
-
```
|
31
|
+
```
|
32
|
+
- 結果
|
33
|
+
|
34
|
+
|user_id|one_day|two_day|three_day|
|
35
|
+
|--:|--:|--:|--:|
|
36
|
+
|10|1|1|0|
|
37
|
+
|20|1|0|0|
|
1
ちょうせい
answer
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
一応こんな感じでいけるかもしれません
|
2
|
+
- 元データ
|
2
3
|
```SQL
|
4
|
+
create table posts(id int,user_id int,created_at varchar(30));
|
5
|
+
insert into posts values
|
6
|
+
(1,10,'2019-11-01T22:11:05.000+09:00'),
|
7
|
+
(2,10,'2019-11-02T22:11:05.000+09:00'),
|
8
|
+
(3,20,'2019-11-01T22:11:05.000+09:00');
|
9
|
+
```
|
10
|
+
- 検索
|
11
|
+
```SQL
|
3
12
|
SELECT
|
4
13
|
user_id,
|
5
14
|
SUM(CASE SUBSTRING(created_at, 1, 10)
|