{ "data": { "question": { "questionId": "4169", "questionFrontendId": "3764", "categoryTitle": "Database", "boundTopicId": 3848456, "title": "Most Common Course Pairs", "titleSlug": "most-common-course-pairs", "content": "

Table: course_completions

\n\n
\n+-------------------+---------+\n| Column Name       | Type    | \n+-------------------+---------+\n| user_id           | int     |\n| course_id         | int     |\n| course_name       | varchar |\n| completion_date   | date    |\n| course_rating     | int     |\n+-------------------+---------+\n(user_id, course_id) is the combination of columns with unique values for this table.\nEach row represents a completed course by a user with their rating (1-5 scale).\n
\n\n

Write a solution to identify skill mastery pathways by analyzing course completion sequences among top-performing students:

\n\n\n\n

Return the result table ordered by pair frequency in descending order and then by first course name and second course name in ascending order.

\n\n

The result format is in the following example.

\n\n

 

\n

Example:

\n\n
\n

Input:

\n\n

course_completions table:

\n\n
\n+---------+-----------+------------------+-----------------+---------------+\n| user_id | course_id | course_name      | completion_date | course_rating |\n+---------+-----------+------------------+-----------------+---------------+\n| 1       | 101       | Python Basics    | 2024-01-05      | 5             |\n| 1       | 102       | SQL Fundamentals | 2024-02-10      | 4             |\n| 1       | 103       | JavaScript       | 2024-03-15      | 5             |\n| 1       | 104       | React Basics     | 2024-04-20      | 4             |\n| 1       | 105       | Node.js          | 2024-05-25      | 5             |\n| 1       | 106       | Docker           | 2024-06-30      | 4             |\n| 2       | 101       | Python Basics    | 2024-01-08      | 4             |\n| 2       | 104       | React Basics     | 2024-02-14      | 5             |\n| 2       | 105       | Node.js          | 2024-03-20      | 4             |\n| 2       | 106       | Docker           | 2024-04-25      | 5             |\n| 2       | 107       | AWS Fundamentals | 2024-05-30      | 4             |\n| 3       | 101       | Python Basics    | 2024-01-10      | 3             |\n| 3       | 102       | SQL Fundamentals | 2024-02-12      | 3             |\n| 3       | 103       | JavaScript       | 2024-03-18      | 3             |\n| 3       | 104       | React Basics     | 2024-04-22      | 2             |\n| 3       | 105       | Node.js          | 2024-05-28      | 3             |\n| 4       | 101       | Python Basics    | 2024-01-12      | 5             |\n| 4       | 108       | Data Science     | 2024-02-16      | 5             |\n| 4       | 109       | Machine Learning | 2024-03-22      | 5             |\n+---------+-----------+------------------+-----------------+---------------+\n
\n\n

Output:

\n\n
\n+------------------+------------------+------------------+\n| first_course     | second_course    | transition_count |\n+------------------+------------------+------------------+\n| Node.js          | Docker           | 2                |\n| React Basics     | Node.js          | 2                |\n| Docker           | AWS Fundamentals | 1                |\n| JavaScript       | React Basics     | 1                |\n| Python Basics    | React Basics     | 1                |\n| Python Basics    | SQL Fundamentals | 1                |\n| SQL Fundamentals | JavaScript       | 1                |\n+------------------+------------------+------------------+\n
\n\n

Explanation:

\n\n\n\n

Results are ordered by transition_count in descending order, then by first_course in ascending order, and then by second_course in ascending order.

\n
\n", "translatedTitle": "最常见的课程组合", "translatedContent": "

表:course_completions

\n\n
\n+-------------------+---------+\n| Column Name       | Type    | \n+-------------------+---------+\n| user_id           | int     |\n| course_id         | int     |\n| course_name       | varchar |\n| completion_date   | date    |\n| course_rating     | int     |\n+-------------------+---------+\n(user_id, course_id) 是此表中具有不同值的列的组合。\n每一行代表一个用户完成的课程及其评分(1-5 分)。\n
\n\n

编写一个解决方案,通过分析顶尖学生完成课程的序列来识别 课程路径

\n\n\n\n

返回结果表,按课程对频率 降序 排列,若频率相同则按第一课程名称和第二课程名称 升序 排列。

\n\n

结果格式如下所示。

\n\n

 

\n\n

示例:

\n\n
\n

输入:

\n\n

course_completions 表:

\n\n
\n+---------+-----------+------------------+-----------------+---------------+\n| user_id | course_id | course_name      | completion_date | course_rating |\n+---------+-----------+------------------+-----------------+---------------+\n| 1       | 101       | Python Basics    | 2024-01-05      | 5             |\n| 1       | 102       | SQL Fundamentals | 2024-02-10      | 4             |\n| 1       | 103       | JavaScript       | 2024-03-15      | 5             |\n| 1       | 104       | React Basics     | 2024-04-20      | 4             |\n| 1       | 105       | Node.js          | 2024-05-25      | 5             |\n| 1       | 106       | Docker           | 2024-06-30      | 4             |\n| 2       | 101       | Python Basics    | 2024-01-08      | 4             |\n| 2       | 104       | React Basics     | 2024-02-14      | 5             |\n| 2       | 105       | Node.js          | 2024-03-20      | 4             |\n| 2       | 106       | Docker           | 2024-04-25      | 5             |\n| 2       | 107       | AWS Fundamentals | 2024-05-30      | 4             |\n| 3       | 101       | Python Basics    | 2024-01-10      | 3             |\n| 3       | 102       | SQL Fundamentals | 2024-02-12      | 3             |\n| 3       | 103       | JavaScript       | 2024-03-18      | 3             |\n| 3       | 104       | React Basics     | 2024-04-22      | 2             |\n| 3       | 105       | Node.js          | 2024-05-28      | 3             |\n| 4       | 101       | Python Basics    | 2024-01-12      | 5             |\n| 4       | 108       | Data Science     | 2024-02-16      | 5             |\n| 4       | 109       | Machine Learning | 2024-03-22      | 5             |\n+---------+-----------+------------------+-----------------+---------------+\n
\n\n

输出:

\n\n
\n+------------------+------------------+------------------+\n| first_course     | second_course    | transition_count |\n+------------------+------------------+------------------+\n| Node.js          | Docker           | 2                |\n| React Basics     | Node.js          | 2                |\n| Docker           | AWS Fundamentals | 1                |\n| JavaScript       | React Basics     | 1                |\n| Python Basics    | React Basics     | 1                |\n| Python Basics    | SQL Fundamentals | 1                |\n| SQL Fundamentals | JavaScript       | 1                |\n+------------------+------------------+------------------+\n
\n\n

解释:

\n\n\n\n

结果按 transition_count 降序排列,然后按 first_course 升序排列,再按 second_course 升序排列。

\n
\n", "isPaidOnly": false, "difficulty": "Hard", "likes": 0, "dislikes": 0, "isLiked": null, "similarQuestions": "[]", "contributors": [], "langToValidPlayground": "{\"cpp\": false, \"java\": false, \"python3\": false, \"python\": false, \"javascript\": false, \"typescript\": false, \"csharp\": false, \"c\": false, \"golang\": false, \"kotlin\": false, \"swift\": false, \"rust\": false, \"ruby\": false, \"php\": false, \"dart\": false, \"scala\": false, \"elixir\": false, \"erlang\": false, \"racket\": false, \"cangjie\": false, \"bash\": false, \"html\": false, \"pythonml\": false, \"react\": false, \"vanillajs\": false, \"mysql\": false, \"mssql\": false, \"postgresql\": false, \"oraclesql\": false, \"pythondata\": false}", "topicTags": [], "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": "PostgreSQL", "langSlug": "postgresql", "code": "-- Write your PostgreSQL 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 topLearnerCourseTransitions(course_completions: pd.DataFrame) -> pd.DataFrame:\n ", "__typename": "CodeSnippetNode" } ], "stats": "{\"totalAccepted\": \"57\", \"totalSubmission\": \"101\", \"totalAcceptedRaw\": 57, \"totalSubmissionRaw\": 101, \"acRate\": \"56.4%\"}", "hints": [], "solution": null, "status": null, "sampleTestCase": "{\"headers\":{\"course_completions\":[\"user_id\",\"course_id\",\"course_name\",\"completion_date\",\"course_rating\"]},\"rows\":{\"course_completions\":[[1,101,\"Python Basics\",\"2024-01-05\",5],[1,102,\"SQL Fundamentals\",\"2024-02-10\",4],[1,103,\"JavaScript\",\"2024-03-15\",5],[1,104,\"React Basics\",\"2024-04-20\",4],[1,105,\"Node.js\",\"2024-05-25\",5],[1,106,\"Docker\",\"2024-06-30\",4],[2,101,\"Python Basics\",\"2024-01-08\",4],[2,104,\"React Basics\",\"2024-02-14\",5],[2,105,\"Node.js\",\"2024-03-20\",4],[2,106,\"Docker\",\"2024-04-25\",5],[2,107,\"AWS Fundamentals\",\"2024-05-30\",4],[3,101,\"Python Basics\",\"2024-01-10\",3],[3,102,\"SQL Fundamentals\",\"2024-02-12\",3],[3,103,\"JavaScript\",\"2024-03-18\",3],[3,104,\"React Basics\",\"2024-04-22\",2],[3,105,\"Node.js\",\"2024-05-28\",3],[4,101,\"Python Basics\",\"2024-01-12\",5],[4,108,\"Data Science\",\"2024-02-16\",5],[4,109,\"Machine Learning\",\"2024-03-22\",5]]}}", "metaData": "{\"mysql\":[\"CREATE TABLE course_completions (\\n user_id INT,\\n course_id INT,\\n course_name VARCHAR(100),\\n completion_date DATE,\\n course_rating INT\\n)\"],\"mssql\":[\"CREATE TABLE course_completions (\\n user_id INT,\\n course_id INT,\\n course_name VARCHAR(100),\\n completion_date DATE,\\n course_rating INT\\n)\"],\"oraclesql\":[\"CREATE TABLE course_completions (\\n user_id NUMBER,\\n course_id NUMBER,\\n course_name VARCHAR2(100),\\n completion_date DATE,\\n course_rating NUMBER\\n)\",\"ALTER SESSION SET nls_date_format='YYYY-MM-DD'\"],\"database\":true,\"pythondata\":[\"course_completions = pd.DataFrame({\\n \\\"user_id\\\": pd.Series(dtype=\\\"int\\\"),\\n \\\"course_id\\\": pd.Series(dtype=\\\"int\\\"),\\n \\\"course_name\\\": pd.Series(dtype=\\\"string\\\"), # corresponds to SQL VARCHAR\\n \\\"completion_date\\\": pd.Series(dtype=\\\"datetime64[ns]\\\"), # corresponds to SQL DATE\\n \\\"course_rating\\\": pd.Series(dtype=\\\"Int64\\\") # corresponds to SQL INT (nullable)\\n})\"],\"postgresql\":[\"CREATE TABLE if not exists course_completions (\\n user_id INT,\\n course_id INT,\\n course_name VARCHAR(100),\\n completion_date DATE,\\n course_rating INT\\n)\"],\"manual\":true,\"database_schema\":{\"course_completions\":{\"user_id\":\"INT\",\"course_id\":\"INT\",\"course_name\":\"VARCHAR(100)\",\"completion_date\":\"DATE\",\"course_rating\":\"INT\"}}}", "judgerAvailable": true, "judgeType": "large", "mysqlSchemas": [ "CREATE TABLE course_completions (\n user_id INT,\n course_id INT,\n course_name VARCHAR(100),\n completion_date DATE,\n course_rating INT\n)", "Truncate table course_completions", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('1', '101', 'Python Basics', '2024-01-05', '5')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('1', '102', 'SQL Fundamentals', '2024-02-10', '4')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('1', '103', 'JavaScript', '2024-03-15', '5')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('1', '104', 'React Basics', '2024-04-20', '4')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('1', '105', 'Node.js', '2024-05-25', '5')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('1', '106', 'Docker', '2024-06-30', '4')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('2', '101', 'Python Basics', '2024-01-08', '4')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('2', '104', 'React Basics', '2024-02-14', '5')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('2', '105', 'Node.js', '2024-03-20', '4')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('2', '106', 'Docker', '2024-04-25', '5')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('2', '107', 'AWS Fundamentals', '2024-05-30', '4')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('3', '101', 'Python Basics', '2024-01-10', '3')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('3', '102', 'SQL Fundamentals', '2024-02-12', '3')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('3', '103', 'JavaScript', '2024-03-18', '3')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('3', '104', 'React Basics', '2024-04-22', '2')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('3', '105', 'Node.js', '2024-05-28', '3')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('4', '101', 'Python Basics', '2024-01-12', '5')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('4', '108', 'Data Science', '2024-02-16', '5')", "insert into course_completions (user_id, course_id, course_name, completion_date, course_rating) values ('4', '109', 'Machine Learning', '2024-03-22', '5')" ], "enableRunCode": true, "envInfo": "{\"mysql\":[\"MySQL\",\"

\\u7248\\u672c\\uff1aMySQL 8.0<\\/code><\\/p>\\r\\n\\r\\n

\\u6ce8\\u610f\\uff1a\\u56e0\\u4e3a\\u5386\\u53f2\\u539f\\u56e0\\uff0c\\u6211\\u4eec\\u6ca1\\u6709\\u542f\\u7528\\u4efb\\u4f55 SQL \\u6a21\\u5f0f\\uff0c\\u5305\\u62ec ONLY_FULL_GROUP_BY<\\/code>, STRICT_TRANS_TABLES<\\/code>, NO_ZERO_IN_DATE<\\/code>, NO_ZERO_DATE<\\/code>, ERROR_FOR_DIVISION_BY_ZERO<\\/code> \\u7b49\\u3002<\\/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\":{\"course_completions\":[\"user_id\",\"course_id\",\"course_name\",\"completion_date\",\"course_rating\"]},\"rows\":{\"course_completions\":[[1,101,\"Python Basics\",\"2024-01-05\",5],[1,102,\"SQL Fundamentals\",\"2024-02-10\",4],[1,103,\"JavaScript\",\"2024-03-15\",5],[1,104,\"React Basics\",\"2024-04-20\",4],[1,105,\"Node.js\",\"2024-05-25\",5],[1,106,\"Docker\",\"2024-06-30\",4],[2,101,\"Python Basics\",\"2024-01-08\",4],[2,104,\"React Basics\",\"2024-02-14\",5],[2,105,\"Node.js\",\"2024-03-20\",4],[2,106,\"Docker\",\"2024-04-25\",5],[2,107,\"AWS Fundamentals\",\"2024-05-30\",4],[3,101,\"Python Basics\",\"2024-01-10\",3],[3,102,\"SQL Fundamentals\",\"2024-02-12\",3],[3,103,\"JavaScript\",\"2024-03-18\",3],[3,104,\"React Basics\",\"2024-04-22\",2],[3,105,\"Node.js\",\"2024-05-28\",3],[4,101,\"Python Basics\",\"2024-01-12\",5],[4,108,\"Data Science\",\"2024-02-16\",5],[4,109,\"Machine Learning\",\"2024-03-22\",5]]}}", "__typename": "QuestionNode" } } }