teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2018/05/18 04:10

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -14,4 +14,15 @@
14
14
 
15
15
  login_flag=(0,1,null)という値の範囲なら、
16
16
  ** sum(login_flag) AS login_count **
17
- でもいいですね。
17
+ でもいいですね。
18
+
19
+ 追記
20
+ ```SQL
21
+ SELECT DATE_FORMAT(res.rest_date, '%Y-%m') AS time
22
+ , COUNT(*) AS count
23
+ , COUNT(res.login_flag) AS login_count
24
+ , COUNT(fix.id) AS spare_count
25
+ FROM res left join fix on res.id=fix.id
26
+ GROUP BY DATE_FORMAT(res.rest_date, '%Y-%m')
27
+ ;
28
+ ```

1

推敲

2018/05/18 04:10

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,4 +1,5 @@
1
1
  まとめて取得ってこういう事?
2
+ ※count()で数えられるのはNull以外なのでそれを利用する。
2
3
  ```SQL
3
4
  SELECT DATE_FORMAT(rest_date, '%Y-%m') AS time
4
5
  , COUNT(*) AS count
@@ -7,8 +8,6 @@
7
8
  GROUP BY DATE_FORMAT(rest_date, '%Y-%m')
8
9
  ;
9
10
  ```
10
- count()で数えられるのはNull以外なのでそれを利用する。
11
-
12
11
  もし、login_flag=1の時だけという場合は、
13
12
  ** sum(case when login_flag=1 then 1 end) AS login_count **
14
13
  などとします。