返回介绍

solution / 2200-2299 / 2298.Tasks Count in the Weekend / README

发布于 2024-06-17 01:03:07 字数 1943 浏览 0 评论 0 收藏 0

2298. 周末任务计数

English Version

题目描述

表: 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 个任务是在工作日提交的。

解法

方法一:WEEKDAY() 函数

WEEKDAY() 函数返回日期的工作日编号,从 0 开始,0 表示星期一,1 表示星期二,以此类推,6 表示星期日。

# Write your MySQL query statement below
SELECT
  SUM(WEEKDAY(submit_date) IN (5, 6)) AS weekend_cnt,
  SUM(WEEKDAY(submit_date) NOT IN (5, 6)) AS working_cnt
FROM Tasks;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文