回答編集履歴

2

調整

2021/10/01 10:27

投稿

yambejp
yambejp

スコア117646

test CHANGED
@@ -63,3 +63,39 @@
63
63
  with rollup
64
64
 
65
65
  ```
66
+
67
+
68
+
69
+ 平日の集計だけ
70
+
71
+ ```SQL
72
+
73
+ SELECT * FROM(
74
+
75
+ SELECT
76
+
77
+ case when WEEKDAY(created_at) BETWEEN 1 AND 5 then 1 else 0 end as heijitu,
78
+
79
+ WEEKDAY(created_at) as week,
80
+
81
+ SUM(fee) AS total_fee
82
+
83
+ FROM
84
+
85
+ users
86
+
87
+ GROUP BY
88
+
89
+ heijitu,week with rollup
90
+
91
+ having week is not null or week is null and heijitu=1
92
+
93
+ ) as sub
94
+
95
+ order by week is null,week
96
+
97
+
98
+
99
+ ```
100
+
101
+ ※平日だけ集計して行を増やすのは合理的ではないのであまりおすすめできません

1

chousei

2021/10/01 10:27

投稿

yambejp
yambejp

スコア117646

test CHANGED
@@ -2,12 +2,64 @@
2
2
 
3
3
  SELECT
4
4
 
5
- SUM(users.fee) AS total_fee
5
+ SUM(fee) AS total_fee
6
6
 
7
7
  FROM
8
8
 
9
9
  users
10
10
 
11
- WHERE WEEKDAY(uses.created_at) BETWEEN 1 AND 5
11
+ WHERE WEEKDAY(created_at) BETWEEN 1 AND 5
12
12
 
13
13
  ```
14
+
15
+
16
+
17
+ # 追記
18
+
19
+ 平日のそれぞれの売上と、その集計
20
+
21
+ (土日どうする?)
22
+
23
+ ```SQL
24
+
25
+ create table users(id int primary key,fee int,created_at date);
26
+
27
+ insert into users values
28
+
29
+ (1,100,'2021-10-01'),
30
+
31
+ (2,150,'2021-10-01'),
32
+
33
+ (3,200,'2021-10-02'),
34
+
35
+ (4,300,'2021-10-03'),
36
+
37
+ (5,120,'2021-10-04'),
38
+
39
+ (6,130,'2021-10-05'),
40
+
41
+ (7,400,'2021-10-05');
42
+
43
+ /*適当なデータ*/
44
+
45
+
46
+
47
+ SELECT
48
+
49
+ WEEKDAY(created_at) as week,
50
+
51
+ SUM(fee) AS total_fee
52
+
53
+ FROM
54
+
55
+ users
56
+
57
+ WHERE WEEKDAY(created_at) BETWEEN 1 AND 5
58
+
59
+ GROUP BY
60
+
61
+ week
62
+
63
+ with rollup
64
+
65
+ ```