无锡网站制作启,装修网站开发,流量推广app,网站文章优化文章目录 1 题目描述2 测试用例3 解题思路 1 题目描述
表: Tasks
-------------------
| Column Name | Type |
-------------------
| task_id | int |
| assignee_id | int |
| submit_date | date |
-------------------task_id 是该表的主键#xff08;具有唯一值… 文章目录 1 题目描述2 测试用例3 解题思路 1 题目描述
表: Tasks
-------------------
| Column Name | Type |
-------------------
| task_id | int |
| assignee_id | int |
| submit_date | date |
-------------------task_id 是该表的主键具有唯一值的列。 此表中的每一行都包含任务 ID、委托人 ID 和提交日期。
编写一个解决方案来报告
在周末 (周六周日) 提交的任务的数量 weekend_cnt以及工作日内提交的任务数 working_cnt。
按 任意顺序 返回结果表。
2 测试用例
输入:
Tasks 表:
-----------------------------------
| task_id | assignee_id | submit_date |
-----------------------------------
| 1 | 1 | 2022-06-13 |
| 2 | 6 | 2022-06-14 |
| 3 | 6 | 2022-06-15 |
| 4 | 3 | 2022-06-18 |
| 5 | 5 | 2022-06-19 |
| 6 | 7 | 2022-06-19 |
-----------------------------------输出:
--------------------------
| weekend_cnt | working_cnt |
--------------------------
| 3 | 3 |
--------------------------解释: Task 1 是在周一提交的。 Task 2 是在周二提交的。 Task 3 是在周三提交的。 Task 4 是在周六提交的。 Task 5 是在周日提交的。 Task 6 是在周日提交的。 3 个任务是在周末提交的。 3 个任务是在工作日提交的。
3 解题思路
使用 WEEKDAY 计算 submit_date 的是星期几WEEKDAY(submit_date) 1 计算得到的数字就是星期几1 对应星期一以此类推 6 对应星期六 7 对应星期天然后使用 sum 统计工作日 和 周末的订单数量
select sum(if(WEEKDAY(submit_date) 1 6, 1, 0)) as weekend_cnt, sum(if(WEEKDAY(submit_date) 1 5, 1, 0)) as working_cnt
from Tasks执行结果
----------------------
|weekend_cnt|working_cnt|
----------------------
|3 |3 |
----------------------