{ "data": { "question": { "questionId": "3943", "questionFrontendId": "3611", "categoryTitle": "Database", "boundTopicId": 3717951, "title": "Find Overbooked Employees", "titleSlug": "find-overbooked-employees", "content": "

Table: employees

\n\n
\n+---------------+---------+\n| Column Name   | Type    |\n+---------------+---------+\n| employee_id   | int     |\n| employee_name | varchar |\n| department    | varchar |\n+---------------+---------+\nemployee_id is the unique identifier for this table.\nEach row contains information about an employee and their department.\n
\n\n

Table: meetings

\n\n
\n+---------------+---------+\n| Column Name   | Type    |\n+---------------+---------+\n| meeting_id    | int     |\n| employee_id   | int     |\n| meeting_date  | date    |\n| meeting_type  | varchar |\n| duration_hours| decimal |\n+---------------+---------+\nmeeting_id is the unique identifier for this table.\nEach row represents a meeting attended by an employee. meeting_type can be 'Team', 'Client', or 'Training'.\n
\n\n

Write a solution to find employees who are meeting-heavy - employees who spend more than 50% of their working time in meetings during any given week.

\n\n\n\n

Return the result table ordered by the number of meeting-heavy weeks in descending order, then by employee name in ascending order.

\n\n

The result format is in the following example.

\n\n

 

\n

Example:

\n\n
\n

Input:

\n\n

employees table:

\n\n
\n+-------------+----------------+-------------+\n| employee_id | employee_name  | department  |\n+-------------+----------------+-------------+\n| 1           | Alice Johnson  | Engineering |\n| 2           | Bob Smith      | Marketing   |\n| 3           | Carol Davis    | Sales       |\n| 4           | David Wilson   | Engineering |\n| 5           | Emma Brown     | HR          |\n+-------------+----------------+-------------+\n
\n\n

meetings table:

\n\n
\n+------------+-------------+--------------+--------------+----------------+\n| meeting_id | employee_id | meeting_date | meeting_type | duration_hours |\n+------------+-------------+--------------+--------------+----------------+\n| 1          | 1           | 2023-06-05   | Team         | 8.0            |\n| 2          | 1           | 2023-06-06   | Client       | 6.0            |\n| 3          | 1           | 2023-06-07   | Training     | 7.0            |\n| 4          | 1           | 2023-06-12   | Team         | 12.0           |\n| 5          | 1           | 2023-06-13   | Client       | 9.0            |\n| 6          | 2           | 2023-06-05   | Team         | 15.0           |\n| 7          | 2           | 2023-06-06   | Client       | 8.0            |\n| 8          | 2           | 2023-06-12   | Training     | 10.0           |\n| 9          | 3           | 2023-06-05   | Team         | 4.0            |\n| 10         | 3           | 2023-06-06   | Client       | 3.0            |\n| 11         | 4           | 2023-06-05   | Team         | 25.0           |\n| 12         | 4           | 2023-06-19   | Client       | 22.0           |\n| 13         | 5           | 2023-06-05   | Training     | 2.0            |\n+------------+-------------+--------------+--------------+----------------+\n
\n\n

Output:

\n\n
\n+-------------+----------------+-------------+---------------------+\n| employee_id | employee_name  | department  | meeting_heavy_weeks |\n+-------------+----------------+-------------+---------------------+\n| 1           | Alice Johnson  | Engineering | 2                   |\n| 4           | David Wilson   | Engineering | 2                   |\n+-------------+----------------+-------------+---------------------+\n
\n\n

Explanation:

\n\n\n\n

The result table is ordered by meeting_heavy_weeks in descending order, then by employee name in ascending order.

\n
\n", "translatedTitle": "查找超预订员工", "translatedContent": "

表:employees

\n\n
\n+---------------+---------+\n| Column Name   | Type    |\n+---------------+---------+\n| employee_id   | int     |\n| employee_name | varchar |\n| department    | varchar |\n+---------------+---------+\nemployee_id 是这张表的唯一主键。\n每一行包含一个员工和他们部门的信息。\n
\n\n

表:meetings

\n\n
\n+---------------+---------+\n| Column Name   | Type    |\n+---------------+---------+\n| meeting_id    | int     |\n| employee_id   | int     |\n| meeting_date  | date    |\n| meeting_type  | varchar |\n| duration_hours| decimal |\n+---------------+---------+\nmeeting_id 是这张表的唯一主键。\n每一行表示一位员工参加的会议。meeting_type 可以是 'Team','Client' 或 'Training'。\n
\n\n

编写一个解决方案来查找会议密集型的员工 -  在任何给定周内,花费超过 50% 工作时间在会议上的员工。

\n\n\n\n

返回结果表按会议密集周的数量降序排列,然后按员工姓名升序排列。结果格式如下所示。

\n\n

 

\n\n

示例:

\n\n
\n

Input:

\n\n

employees 表:

\n\n
\n+-------------+----------------+-------------+\n| employee_id | employee_name  | department  |\n+-------------+----------------+-------------+\n| 1           | Alice Johnson  | Engineering |\n| 2           | Bob Smith      | Marketing   |\n| 3           | Carol Davis    | Sales       |\n| 4           | David Wilson   | Engineering |\n| 5           | Emma Brown     | HR          |\n+-------------+----------------+-------------+\n
\n\n

meetings 表:

\n\n
\n+------------+-------------+--------------+--------------+----------------+\n| meeting_id | employee_id | meeting_date | meeting_type | duration_hours |\n+------------+-------------+--------------+--------------+----------------+\n| 1          | 1           | 2023-06-05   | Team         | 8.0            |\n| 2          | 1           | 2023-06-06   | Client       | 6.0            |\n| 3          | 1           | 2023-06-07   | Training     | 7.0            |\n| 4          | 1           | 2023-06-12   | Team         | 12.0           |\n| 5          | 1           | 2023-06-13   | Client       | 9.0            |\n| 6          | 2           | 2023-06-05   | Team         | 15.0           |\n| 7          | 2           | 2023-06-06   | Client       | 8.0            |\n| 8          | 2           | 2023-06-12   | Training     | 10.0           |\n| 9          | 3           | 2023-06-05   | Team         | 4.0            |\n| 10         | 3           | 2023-06-06   | Client       | 3.0            |\n| 11         | 4           | 2023-06-05   | Team         | 25.0           |\n| 12         | 4           | 2023-06-19   | Client       | 22.0           |\n| 13         | 5           | 2023-06-05   | Training     | 2.0            |\n+------------+-------------+--------------+--------------+----------------+\n
\n\n

输出:

\n\n
\n+-------------+----------------+-------------+---------------------+\n| employee_id | employee_name  | department  | meeting_heavy_weeks |\n+-------------+----------------+-------------+---------------------+\n| 1           | Alice Johnson  | Engineering | 2                   |\n| 4           | David Wilson   | Engineering | 2                   |\n+-------------+----------------+-------------+---------------------+\n
\n\n

解释:

\n\n\n\n

结果表按 meeting_heavy_weeks 降序排列,然后按员工姓名升序排列。

\n
\n", "isPaidOnly": false, "difficulty": "Medium", "likes": 0, "dislikes": 0, "isLiked": null, "similarQuestions": "[]", "contributors": [], "langToValidPlayground": "{\"cpp\": false, \"java\": false, \"python\": false, \"python3\": false, \"mysql\": false, \"mssql\": false, \"oraclesql\": false, \"c\": false, \"csharp\": false, \"javascript\": false, \"typescript\": false, \"bash\": false, \"php\": false, \"swift\": false, \"kotlin\": false, \"dart\": false, \"golang\": false, \"ruby\": false, \"scala\": false, \"html\": false, \"pythonml\": false, \"rust\": false, \"racket\": false, \"erlang\": false, \"elixir\": false, \"pythondata\": false, \"react\": false, \"vanillajs\": false, \"postgresql\": false, \"cangjie\": false}", "topicTags": [ { "name": "Database", "slug": "database", "translatedName": "数据库", "__typename": "TopicTagNode" } ], "companyTagStats": null, "codeSnippets": [ { "lang": "MySQL", "langSlug": "mysql", "code": "# Write your MySQL query statement below", "__typename": "CodeSnippetNode" }, { "lang": "MS SQL Server", "langSlug": "mssql", "code": "/* Write your T-SQL query statement below */", "__typename": "CodeSnippetNode" }, { "lang": "Oracle", "langSlug": "oraclesql", "code": "/* Write your PL/SQL query statement below */", "__typename": "CodeSnippetNode" }, { "lang": "Pandas", "langSlug": "pythondata", "code": "import pandas as pd\n\ndef find_overbooked_employees(employees: pd.DataFrame, meetings: pd.DataFrame) -> pd.DataFrame:\n ", "__typename": "CodeSnippetNode" }, { "lang": "PostgreSQL", "langSlug": "postgresql", "code": "-- Write your PostgreSQL query statement below", "__typename": "CodeSnippetNode" } ], "stats": "{\"totalAccepted\": \"175\", \"totalSubmission\": \"541\", \"totalAcceptedRaw\": 175, \"totalSubmissionRaw\": 541, \"acRate\": \"32.3%\"}", "hints": [], "solution": null, "status": null, "sampleTestCase": "{\"headers\":{\"employees\":[\"employee_id\",\"employee_name\",\"department\"],\"meetings\":[\"meeting_id\",\"employee_id\",\"meeting_date\",\"meeting_type\",\"duration_hours\"]},\"rows\":{\"employees\":[[1,\"Alice Johnson\",\"Engineering\"],[2,\"Bob Smith\",\"Marketing\"],[3,\"Carol Davis\",\"Sales\"],[4,\"David Wilson\",\"Engineering\"],[5,\"Emma Brown\",\"HR\"]],\"meetings\":[[1,1,\"2023-06-05\",\"Team\",8.0],[2,1,\"2023-06-06\",\"Client\",6.0],[3,1,\"2023-06-07\",\"Training\",7.0],[4,1,\"2023-06-12\",\"Team\",12.0],[5,1,\"2023-06-13\",\"Client\",9.0],[6,2,\"2023-06-05\",\"Team\",15.0],[7,2,\"2023-06-06\",\"Client\",8.0],[8,2,\"2023-06-12\",\"Training\",10.0],[9,3,\"2023-06-05\",\"Team\",4.0],[10,3,\"2023-06-06\",\"Client\",3.0],[11,4,\"2023-06-05\",\"Team\",25.0],[12,4,\"2023-06-19\",\"Client\",22.0],[13,5,\"2023-06-05\",\"Training\",2.0]]}}", "metaData": "{\"mysql\":[\"CREATE TABLE if not exists employees (\\n employee_id INT,\\n employee_name VARCHAR(255),\\n department VARCHAR(100)\\n)\",\"CREATE TABLE meetings (\\n meeting_id INT,\\n employee_id INT,\\n meeting_date DATE,\\n meeting_type VARCHAR(50),\\n duration_hours DECIMAL(4, 2)\\n)\"],\"mssql\":[\"CREATE TABLE employees (\\n employee_id INT,\\n employee_name VARCHAR(255),\\n department VARCHAR(100)\\n)\",\"CREATE TABLE meetings (\\n meeting_id INT,\\n employee_id INT,\\n meeting_date DATE,\\n meeting_type VARCHAR(50),\\n duration_hours DECIMAL(4, 2)\\n)\"],\"oraclesql\":[\"CREATE TABLE employees (\\n employee_id NUMBER,\\n employee_name VARCHAR2(255),\\n department VARCHAR2(100)\\n)\",\"CREATE TABLE meetings (\\n meeting_id NUMBER,\\n employee_id NUMBER,\\n meeting_date DATE,\\n meeting_type VARCHAR2(50),\\n duration_hours NUMBER(4, 2)\\n)\",\"ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD'\"],\"database\":true,\"name\":\"find_overbooked_employees\",\"postgresql\":[\"CREATE TABLE IF NOT EXISTS employees (\\n employee_id INTEGER,\\n employee_name VARCHAR(255),\\n department VARCHAR(100)\\n);\\n\",\"CREATE TABLE IF NOT EXISTS meetings (\\n meeting_id INTEGER,\\n employee_id INTEGER,\\n meeting_date DATE,\\n meeting_type VARCHAR(50),\\n duration_hours NUMERIC(4, 2)\\n);\\n\"],\"pythondata\":[\"employees = pd.DataFrame(columns=['employee_id', 'employee_name', 'department']).astype({'employee_id': 'Int64', 'employee_name': 'string', 'department': 'string'})\\n\",\"meetings = pd.DataFrame(columns=['meeting_id', 'employee_id', 'meeting_date', 'meeting_type', 'duration_hours']).astype({'meeting_id': 'Int64', 'employee_id': 'Int64', 'meeting_date': 'datetime64[ns]', 'meeting_type': 'string', 'duration_hours': 'float64'})\\n\"],\"database_schema\":{\"employees\":{\"employee_id\":\"INT\",\"employee_name\":\"VARCHAR(255)\",\"department\":\"VARCHAR(100)\"},\"meetings\":{\"meeting_id\":\"INT\",\"employee_id\":\"INT\",\"meeting_date\":\"DATE\",\"meeting_type\":\"VARCHAR(50)\",\"duration_hours\":\"DECIMAL(4, 2)\"}}}", "judgerAvailable": true, "judgeType": "large", "mysqlSchemas": [ "CREATE TABLE if not exists employees (\n employee_id INT,\n employee_name VARCHAR(255),\n department VARCHAR(100)\n)", "CREATE TABLE meetings (\n meeting_id INT,\n employee_id INT,\n meeting_date DATE,\n meeting_type VARCHAR(50),\n duration_hours DECIMAL(4, 2)\n)", "Truncate table employees", "insert into employees (employee_id, employee_name, department) values ('1', 'Alice Johnson', 'Engineering')", "insert into employees (employee_id, employee_name, department) values ('2', 'Bob Smith', 'Marketing')", "insert into employees (employee_id, employee_name, department) values ('3', 'Carol Davis', 'Sales')", "insert into employees (employee_id, employee_name, department) values ('4', 'David Wilson', 'Engineering')", "insert into employees (employee_id, employee_name, department) values ('5', 'Emma Brown', 'HR')", "Truncate table meetings", "insert into meetings (meeting_id, employee_id, meeting_date, meeting_type, duration_hours) values ('1', '1', '2023-06-05', 'Team', '8.0')", "insert into meetings (meeting_id, employee_id, meeting_date, meeting_type, duration_hours) values ('2', '1', '2023-06-06', 'Client', '6.0')", "insert into meetings (meeting_id, employee_id, meeting_date, meeting_type, duration_hours) values ('3', '1', '2023-06-07', 'Training', '7.0')", "insert into meetings (meeting_id, employee_id, meeting_date, meeting_type, duration_hours) values ('4', '1', '2023-06-12', 'Team', '12.0')", "insert into meetings (meeting_id, employee_id, meeting_date, meeting_type, duration_hours) values ('5', '1', '2023-06-13', 'Client', '9.0')", "insert into meetings (meeting_id, employee_id, meeting_date, meeting_type, duration_hours) values ('6', '2', '2023-06-05', 'Team', '15.0')", "insert into meetings (meeting_id, employee_id, meeting_date, meeting_type, duration_hours) values ('7', '2', '2023-06-06', 'Client', '8.0')", "insert into meetings (meeting_id, employee_id, meeting_date, meeting_type, duration_hours) values ('8', '2', '2023-06-12', 'Training', '10.0')", "insert into meetings (meeting_id, employee_id, meeting_date, meeting_type, duration_hours) values ('9', '3', '2023-06-05', 'Team', '4.0')", "insert into meetings (meeting_id, employee_id, meeting_date, meeting_type, duration_hours) values ('10', '3', '2023-06-06', 'Client', '3.0')", "insert into meetings (meeting_id, employee_id, meeting_date, meeting_type, duration_hours) values ('11', '4', '2023-06-05', 'Team', '25.0')", "insert into meetings (meeting_id, employee_id, meeting_date, meeting_type, duration_hours) values ('12', '4', '2023-06-19', 'Client', '22.0')", "insert into meetings (meeting_id, employee_id, meeting_date, meeting_type, duration_hours) values ('13', '5', '2023-06-05', 'Training', '2.0')" ], "enableRunCode": true, "envInfo": "{\"mysql\":[\"MySQL\",\"

\\u7248\\u672c\\uff1aMySQL 8.0<\\/code><\\/p>\"],\"mssql\":[\"MS SQL Server\",\"

mssql server 2019.<\\/p>\"],\"oraclesql\":[\"Oracle\",\"

Oracle Sql 11.2.<\\/p>\"],\"pythondata\":[\"Pandas\",\"

Python 3.10 with Pandas 2.2.2 and NumPy 1.26.4<\\/p>\"],\"postgresql\":[\"PostgreSQL\",\"

PostgreSQL 16<\\/p>\"]}", "book": null, "isSubscribed": false, "isDailyQuestion": false, "dailyRecordStatus": null, "editorType": "CKEDITOR", "ugcQuestionId": null, "style": "LEETCODE", "exampleTestcases": "{\"headers\":{\"employees\":[\"employee_id\",\"employee_name\",\"department\"],\"meetings\":[\"meeting_id\",\"employee_id\",\"meeting_date\",\"meeting_type\",\"duration_hours\"]},\"rows\":{\"employees\":[[1,\"Alice Johnson\",\"Engineering\"],[2,\"Bob Smith\",\"Marketing\"],[3,\"Carol Davis\",\"Sales\"],[4,\"David Wilson\",\"Engineering\"],[5,\"Emma Brown\",\"HR\"]],\"meetings\":[[1,1,\"2023-06-05\",\"Team\",8.0],[2,1,\"2023-06-06\",\"Client\",6.0],[3,1,\"2023-06-07\",\"Training\",7.0],[4,1,\"2023-06-12\",\"Team\",12.0],[5,1,\"2023-06-13\",\"Client\",9.0],[6,2,\"2023-06-05\",\"Team\",15.0],[7,2,\"2023-06-06\",\"Client\",8.0],[8,2,\"2023-06-12\",\"Training\",10.0],[9,3,\"2023-06-05\",\"Team\",4.0],[10,3,\"2023-06-06\",\"Client\",3.0],[11,4,\"2023-06-05\",\"Team\",25.0],[12,4,\"2023-06-19\",\"Client\",22.0],[13,5,\"2023-06-05\",\"Training\",2.0]]}}", "__typename": "QuestionNode" } } }