# Write your MySQL query statement below
2298. 周末任务计数
表: Tasks
+-------------+------+
| Column Name | Type |
+-------------+------+
| task_id | int |
| assignee_id | int |
| submit_date | date |
+-------------+------+
task_id
是该表的主键(具有唯一值的列)。
此表中的每一行都包含任务 ID、委托人 ID 和提交日期。
编写一个解决方案来报告:
weekend_cnt
,以及working_cnt
。按 任意顺序 返回结果表。
返回结果格式如以下示例所示。
示例 1:
输入: 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 个任务是在工作日提交的。
原站题解
mysql 解法, 执行用时: 260 ms, 内存消耗: 0 B, 提交时间: 2023-10-15 17:26:56
# Write your MySQL query statement below with a as (SELECT WEEKDAY(submit_date) DD FROM Tasks) SELECT SUM(IF(DD<5, 0, 1)) weekend_cnt, SUM(IF(DD>=5, 0, 1)) working_cnt FROM a
mysql 解法, 执行用时: 508 ms, 内存消耗: 0 B, 提交时间: 2023-10-15 17:26:35
select sum(if(dayofweek(submit_date) in (1, 7), 1, 0)) weekend_cnt, sum(if(dayofweek(submit_date) in (2, 3, 4, 5, 6), 1, 0)) working_cnt from Tasks;