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

回答編集履歴

2

調整

2021/10/01 10:27

投稿

yambejp
yambejp

スコア118110

answer CHANGED
@@ -30,4 +30,22 @@
30
30
  GROUP BY
31
31
  week
32
32
  with rollup
33
- ```
33
+ ```
34
+
35
+ 平日の集計だけ
36
+ ```SQL
37
+ SELECT * FROM(
38
+ SELECT
39
+ case when WEEKDAY(created_at) BETWEEN 1 AND 5 then 1 else 0 end as heijitu,
40
+ WEEKDAY(created_at) as week,
41
+ SUM(fee) AS total_fee
42
+ FROM
43
+ users
44
+ GROUP BY
45
+ heijitu,week with rollup
46
+ having week is not null or week is null and heijitu=1
47
+ ) as sub
48
+ order by week is null,week
49
+
50
+ ```
51
+ ※平日だけ集計して行を増やすのは合理的ではないのであまりおすすめできません

1

chousei

2021/10/01 10:27

投稿

yambejp
yambejp

スコア118110

answer CHANGED
@@ -1,7 +1,33 @@
1
1
  ```SQL
2
2
  SELECT
3
- SUM(users.fee) AS total_fee
3
+ SUM(fee) AS total_fee
4
4
  FROM
5
5
  users
6
- WHERE WEEKDAY(uses.created_at) BETWEEN 1 AND 5
6
+ WHERE WEEKDAY(created_at) BETWEEN 1 AND 5
7
+ ```
8
+
9
+ # 追記
10
+ 平日のそれぞれの売上と、その集計
11
+ (土日どうする?)
12
+ ```SQL
13
+ create table users(id int primary key,fee int,created_at date);
14
+ insert into users values
15
+ (1,100,'2021-10-01'),
16
+ (2,150,'2021-10-01'),
17
+ (3,200,'2021-10-02'),
18
+ (4,300,'2021-10-03'),
19
+ (5,120,'2021-10-04'),
20
+ (6,130,'2021-10-05'),
21
+ (7,400,'2021-10-05');
22
+ /*適当なデータ*/
23
+
24
+ SELECT
25
+ WEEKDAY(created_at) as week,
26
+ SUM(fee) AS total_fee
27
+ FROM
28
+ users
29
+ WHERE WEEKDAY(created_at) BETWEEN 1 AND 5
30
+ GROUP BY
31
+ week
32
+ with rollup
7
33
  ```