mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-10-23 22:08:58 +08:00
96 lines
23 KiB
JSON
96 lines
23 KiB
JSON
{
|
||
"data": {
|
||
"question": {
|
||
"questionId": "4103",
|
||
"questionFrontendId": "3716",
|
||
"categoryTitle": "Database",
|
||
"boundTopicId": 3805185,
|
||
"title": "Find Churn Risk Customers",
|
||
"titleSlug": "find-churn-risk-customers",
|
||
"content": "<p>Table: <code>subscription_events</code></p>\n\n<pre>\n+------------------+---------+\n| Column Name | Type | \n+------------------+---------+\n| event_id | int |\n| user_id | int |\n| event_date | date |\n| event_type | varchar |\n| plan_name | varchar |\n| monthly_amount | decimal |\n+------------------+---------+\nevent_id is the unique identifier for this table.\nevent_type can be start, upgrade, downgrade, or cancel.\nplan_name can be basic, standard, premium, or NULL (when event_type is cancel).\nmonthly_amount represents the monthly subscription cost after this event.\nFor cancel events, monthly_amount is 0.\n</pre>\n\n<p>Write a solution to <strong>Find Churn Risk Customers</strong> - users who show warning signs before churning. A user is considered <b>churn risk customer</b> if they meet ALL the following criteria:</p>\n\n<ul>\n\t<li>Currently have an <strong>active subscription</strong> (their last event is not cancel).</li>\n\t<li>Have performed <strong>at least one</strong> downgrade in their subscription history.</li>\n\t<li>Their <strong>current plan revenue</strong> is less than <code>50%</code> of their historical maximum plan revenue.</li>\n\t<li>Have been a subscriber for <strong>at least</strong> <code>60</code> days.</li>\n</ul>\n\n<p>Return <em>the result table ordered by</em> <code>days_as_subscriber</code> <em>in <strong>descending</strong> order, then by</em> <code>user_id</code> <em>in <strong>ascending</strong> order</em>.</p>\n\n<p>The result format is in the following example.</p>\n\n<p> </p>\n<p><strong class=\"example\">Example:</strong></p>\n\n<div class=\"example-block\">\n<p><strong>Input:</strong></p>\n\n<p>subscription_events table:</p>\n\n<pre class=\"example-io\">\n+----------+---------+------------+------------+-----------+----------------+\n| event_id | user_id | event_date | event_type | plan_name | monthly_amount |\n+----------+---------+------------+------------+-----------+----------------+\n| 1 | 501 | 2024-01-01 | start | premium | 29.99 |\n| 2 | 501 | 2024-02-15 | downgrade | standard | 19.99 |\n| 3 | 501 | 2024-03-20 | downgrade | basic | 9.99 |\n| 4 | 502 | 2024-01-05 | start | standard | 19.99 |\n| 5 | 502 | 2024-02-10 | upgrade | premium | 29.99 |\n| 6 | 502 | 2024-03-15 | downgrade | basic | 9.99 |\n| 7 | 503 | 2024-01-10 | start | basic | 9.99 |\n| 8 | 503 | 2024-02-20 | upgrade | standard | 19.99 |\n| 9 | 503 | 2024-03-25 | upgrade | premium | 29.99 |\n| 10 | 504 | 2024-01-15 | start | premium | 29.99 |\n| 11 | 504 | 2024-03-01 | downgrade | standard | 19.99 |\n| 12 | 504 | 2024-03-30 | cancel | NULL | 0.00 |\n| 13 | 505 | 2024-02-01 | start | basic | 9.99 |\n| 14 | 505 | 2024-02-28 | upgrade | standard | 19.99 |\n| 15 | 506 | 2024-01-20 | start | premium | 29.99 |\n| 16 | 506 | 2024-03-10 | downgrade | basic | 9.99 |\n+----------+---------+------------+------------+-----------+----------------+\n</pre>\n\n<p><strong>Output:</strong></p>\n\n<pre class=\"example-io\">\n+----------+--------------+------------------------+-----------------------+--------------------+\n| user_id | current_plan | current_monthly_amount | max_historical_amount | days_as_subscriber |\n+----------+--------------+------------------------+-----------------------+--------------------+\n| 501 | basic | 9.99 | 29.99 | 79 |\n| 502 | basic | 9.99 | 29.99 | 69 |\n+----------+--------------+------------------------+-----------------------+--------------------+\n</pre>\n\n<p><strong>Explanation:</strong></p>\n\n<ul>\n\t<li><strong>User 501</strong>:\n\n\t<ul>\n\t\t<li>Currently active: Last event is downgrade to basic (not cancelled) </li>\n\t\t<li>Has downgrades: Yes, 2 downgrades in history </li>\n\t\t<li>Current revenue (9.99) vs max (29.99): 9.99/29.99 = 33.3% (less than 50%) </li>\n\t\t<li>Days as subscriber: Jan 1 to Mar 20 = 79 days (at least 60) </li>\n\t\t<li>Result: <strong>Churn Risk Customer</strong></li>\n\t</ul>\n\t</li>\n\t<li><strong>User 502</strong>:\n\t<ul>\n\t\t<li>Currently active: Last event is downgrade to basic (not cancelled) </li>\n\t\t<li>Has downgrades: Yes, 1 downgrade in history </li>\n\t\t<li>Current revenue (9.99) vs max (29.99): 9.99/29.99 = 33.3% (less than 50%) </li>\n\t\t<li>Days as subscriber: Jan 5 to Mar 15 = 70 days (at least 60) </li>\n\t\t<li>Result: <strong>Churn Risk Customer</strong></li>\n\t</ul>\n\t</li>\n\t<li><strong>User 503</strong>:\n\t<ul>\n\t\t<li>Currently active: Last event is upgrade to premium (not cancelled) </li>\n\t\t<li>Has downgrades: No downgrades in history </li>\n\t\t<li>Result: <strong>Not at-risk</strong> (no downgrade history)</li>\n\t</ul>\n\t</li>\n\t<li><strong>User 504</strong>:\n\t<ul>\n\t\t<li>Currently active: Last event is cancel</li>\n\t\t<li>Result: <strong>Not at-risk</strong> (subscription cancelled)</li>\n\t</ul>\n\t</li>\n\t<li><strong>User 505</strong>:\n\t<ul>\n\t\t<li>Currently active: Last event is 'upgrade' to standard (not cancelled) </li>\n\t\t<li>Has downgrades: No downgrades in history </li>\n\t\t<li>Result: <strong>Not at-risk</strong> (no downgrade history)</li>\n\t</ul>\n\t</li>\n\t<li><strong>User 506</strong>:\n\t<ul>\n\t\t<li>Currently active: Last event is downgrade to basic (not cancelled) </li>\n\t\t<li>Has downgrades: Yes, 1 downgrade in history </li>\n\t\t<li>Current revenue (9.99) vs max (29.99): 9.99/29.99 = 33.3% (less than 50%) </li>\n\t\t<li>Days as subscriber: Jan 20 to Mar 10 = 50 days (less than 60) </li>\n\t\t<li>Result: <strong>Not at-risk</strong> (insufficient subscription duration)</li>\n\t</ul>\n\t</li>\n</ul>\n\n<p>Result table is ordered by days_as_subscriber DESC, then user_id ASC.</p>\n\n<p><strong>Note:</strong> days_as_subscriber is calculated from the first event date to the last event date for each user.</p>\n</div>\n",
|
||
"translatedTitle": "寻找流失风险客户",
|
||
"translatedContent": "<p>表:<code>subscription_events</code></p>\n\n<pre>\n+------------------+---------+\n| Column Name | Type | \n+------------------+---------+\n| event_id | int |\n| user_id | int |\n| event_date | date |\n| event_type | varchar |\n| plan_name | varchar |\n| monthly_amount | decimal |\n+------------------+---------+\nevent_id 是这张表的唯一主键。\nevent_type 可以是 start,upgrade,downgrade 或 cancel。\nplan_name 可以是 basic,standard,premium 或 NULL(当 event_type 是 cancel)。\nmonthly_amount 表示此次事件后的月度订阅费用。\n对于 cancel 的事件,monthly_amount 为 0。\n</pre>\n\n<p>编写一个解决方案来 <strong>寻找流失风险用户</strong> - 出现预流失信号的用户。如果用户符合以下所有条件,则被视为 <strong>有流失风险</strong> 的客户:</p>\n\n<ul>\n\t<li>目前有 <strong>有效的订阅</strong>(他们的最后事件不是 cancel)。</li>\n\t<li>已在其订阅历史中 <strong>至少进行过一次</strong> 降级。</li>\n\t<li>他们 <strong>目前的订阅费用</strong> 低于历史最高订阅费用的 <code>50%</code>。</li>\n\t<li>已订阅 <strong>至少</strong> <code>60</code> 天。</li>\n</ul>\n\n<p>返回结果表按 <code>days_as_subscriber</code> <strong>降序</strong> 排序,然后按 <code>user_id</code> <strong>升序 </strong>排序。</p>\n\n<p>结果格式如下所示。</p>\n\n<p> </p>\n\n<p><strong class=\"example\">示例:</strong></p>\n\n<div class=\"example-block\">\n<p><strong>输入:</strong></p>\n\n<p>subscription_events 表:</p>\n\n<pre class=\"example-io\">\n+----------+---------+------------+------------+-----------+----------------+\n| event_id | user_id | event_date | event_type | plan_name | monthly_amount |\n+----------+---------+------------+------------+-----------+----------------+\n| 1 | 501 | 2024-01-01 | start | premium | 29.99 |\n| 2 | 501 | 2024-02-15 | downgrade | standard | 19.99 |\n| 3 | 501 | 2024-03-20 | downgrade | basic | 9.99 |\n| 4 | 502 | 2024-01-05 | start | standard | 19.99 |\n| 5 | 502 | 2024-02-10 | upgrade | premium | 29.99 |\n| 6 | 502 | 2024-03-15 | downgrade | basic | 9.99 |\n| 7 | 503 | 2024-01-10 | start | basic | 9.99 |\n| 8 | 503 | 2024-02-20 | upgrade | standard | 19.99 |\n| 9 | 503 | 2024-03-25 | upgrade | premium | 29.99 |\n| 10 | 504 | 2024-01-15 | start | premium | 29.99 |\n| 11 | 504 | 2024-03-01 | downgrade | standard | 19.99 |\n| 12 | 504 | 2024-03-30 | cancel | NULL | 0.00 |\n| 13 | 505 | 2024-02-01 | start | basic | 9.99 |\n| 14 | 505 | 2024-02-28 | upgrade | standard | 19.99 |\n| 15 | 506 | 2024-01-20 | start | premium | 29.99 |\n| 16 | 506 | 2024-03-10 | downgrade | basic | 9.99 |\n+----------+---------+------------+------------+-----------+----------------+\n</pre>\n\n<p><strong>输出:</strong></p>\n\n<pre class=\"example-io\">\n+----------+--------------+------------------------+-----------------------+--------------------+\n| user_id | current_plan | current_monthly_amount | max_historical_amount | days_as_subscriber |\n+----------+--------------+------------------------+-----------------------+--------------------+\n| 501 | basic | 9.99 | 29.99 | 79 |\n| 502 | basic | 9.99 | 29.99 | 69 |\n+----------+--------------+------------------------+-----------------------+--------------------+\n</pre>\n\n<p><strong>解释:</strong></p>\n\n<ul>\n\t<li><strong>用户 501:</strong>\n\n\t<ul>\n\t\t<li>当前订阅有效:最近一次事件是降级到基础(未取消)</li>\n\t\t<li>有降级记录:是,历史上有 2 次降级</li>\n\t\t<li>当前订阅(9.99)vs 最大订阅(29.99):9.99/29.99 = 33.3%(少于 50%)</li>\n\t\t<li>订阅天数:1 月 1 日到 5 月 20 日 = 79 天(至少 60 天)</li>\n\t\t<li>结果:<strong>流失风险客户</strong></li>\n\t</ul>\n\t</li>\n\t<li><strong>用户 502:</strong>\n\t<ul>\n\t\t<li>当前订阅有效:最近一次事件是降级到基础(未取消)</li>\n\t\t<li>有降级记录:是,历史上有 1 次降级</li>\n\t\t<li>当前订阅(9.99)vs 最大订阅(29.99):9.99/29.99 = 33.3%(少于 50%)</li>\n\t\t<li>订阅天数:1 月 5 日到 5 月 15 日 = 70 天(至少 60 天)</li>\n\t\t<li>结果:<strong>流失风险客户</strong></li>\n\t</ul>\n\t</li>\n\t<li><strong>用户 503:</strong>\n\t<ul>\n\t\t<li>当前订阅有效:最近一次事件是升级到高级(未取消)</li>\n\t\t<li>有降级记录:历史上没有降级</li>\n\t\t<li>结果:<strong>无风险客户</strong>(没有降级历史)</li>\n\t</ul>\n\t</li>\n\t<li><strong>用户 504:</strong>\n\t<ul>\n\t\t<li>当前订阅有效:最近一次事件是取消</li>\n\t\t<li>结果:<strong>无风险客户</strong>(已取消订阅)</li>\n\t</ul>\n\t</li>\n\t<li><strong>用户 505:</strong>\n\t<ul>\n\t\t<li>当前订阅有效:最近一次事件是升级到标准(未取消)</li>\n\t\t<li>有降级记录:历史上没有降级</li>\n\t\t<li>结果:<strong>无风险客户</strong>(没有降级历史)</li>\n\t</ul>\n\t</li>\n\t<li><strong>用户 506:</strong>\n\t<ul>\n\t\t<li>当前订阅有效:最近一次事件是降级到标准(未取消)</li>\n\t\t<li>有降级记录:是,历史上有 1 次降级</li>\n\t\t<li>当前订阅(9.99)vs 最大订阅(29.99):9.99/29.99 = 33.3%(少于 50%)</li>\n\t\t<li>订阅天数:1 月 20 日到 5 月 10 日 = 50 天(少于 60 天)</li>\n\t\t<li>结果:<strong>无风险客户</strong>(订阅时长不足)</li>\n\t</ul>\n\t</li>\n</ul>\n\n<p>结果表按 days_as_subscriber 降序排序,然后按 user_id 升序排序。</p>\n\n<p><strong>注意:</strong>days_as_subscriber 按照每个用户的第一个事件日期到最后一个事件日期进行计算。</p>\n</div>\n",
|
||
"isPaidOnly": false,
|
||
"difficulty": "Medium",
|
||
"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 find_churn_risk_customers(subscription_events: pd.DataFrame) -> pd.DataFrame:\n ",
|
||
"__typename": "CodeSnippetNode"
|
||
}
|
||
],
|
||
"stats": "{\"totalAccepted\": \"124\", \"totalSubmission\": \"165\", \"totalAcceptedRaw\": 124, \"totalSubmissionRaw\": 165, \"acRate\": \"75.2%\"}",
|
||
"hints": [],
|
||
"solution": null,
|
||
"status": null,
|
||
"sampleTestCase": "{\"headers\":{\"subscription_events\":[\"event_id\",\"user_id\",\"event_date\",\"event_type\",\"plan_name\",\"monthly_amount\"]},\"rows\":{\"subscription_events\":[[1,501,\"2024-01-01\",\"start\",\"premium\",29.99],[2,501,\"2024-02-15\",\"downgrade\",\"standard\",19.99],[3,501,\"2024-03-20\",\"downgrade\",\"basic\",9.99],[4,502,\"2024-01-05\",\"start\",\"standard\",19.99],[5,502,\"2024-02-10\",\"upgrade\",\"premium\",29.99],[6,502,\"2024-03-15\",\"downgrade\",\"basic\",9.99],[7,503,\"2024-01-10\",\"start\",\"basic\",9.99],[8,503,\"2024-02-20\",\"upgrade\",\"standard\",19.99],[9,503,\"2024-03-25\",\"upgrade\",\"premium\",29.99],[10,504,\"2024-01-15\",\"start\",\"premium\",29.99],[11,504,\"2024-03-01\",\"downgrade\",\"standard\",19.99],[12,504,\"2024-03-30\",\"cancel\",null,0.00],[13,505,\"2024-02-01\",\"start\",\"basic\",9.99],[14,505,\"2024-02-28\",\"upgrade\",\"standard\",19.99],[15,506,\"2024-01-20\",\"start\",\"premium\",29.99],[16,506,\"2024-03-10\",\"downgrade\",\"basic\",9.99]]}}",
|
||
"metaData": "{\"mysql\":[\"CREATE TABLE if not exists subscription_events (\\n event_id INT,\\n user_id INT,\\n event_date DATE,\\n event_type VARCHAR(20),\\n plan_name VARCHAR(20),\\n monthly_amount DECIMAL(10,2)\\n)\"],\"mssql\":[\"CREATE TABLE subscription_events (\\n event_id INT,\\n user_id INT,\\n event_date DATE,\\n event_type VARCHAR(20),\\n plan_name VARCHAR(20),\\n monthly_amount DECIMAL(10,2)\\n)\"],\"oraclesql\":[\"CREATE TABLE subscription_events (\\n event_id NUMBER,\\n user_id NUMBER,\\n event_date DATE,\\n event_type VARCHAR2(20),\\n plan_name VARCHAR2(20),\\n monthly_amount NUMBER(10,2)\\n)\",\"ALTER SESSION SET nls_date_format='YYYY-MM-DD'\"],\"database\":true,\"name\":\"find_churn_risk_customers\",\"postgresql\":[\"CREATE TABLE IF NOT EXISTS subscription_events (\\n event_id INT PRIMARY KEY,\\n user_id INT NOT NULL,\\n event_date DATE NOT NULL,\\n event_type VARCHAR(20) NOT NULL,\\n plan_name VARCHAR(20),\\n monthly_amount NUMERIC(10,2) NOT NULL\\n);\\n\"],\"pythondata\":[\"subscription_events = pd.DataFrame({\\n \\\"event_id\\\": pd.Series(dtype=\\\"int\\\"),\\n \\\"user_id\\\": pd.Series(dtype=\\\"int\\\"),\\n \\\"event_date\\\": pd.Series(dtype=\\\"datetime64[ns]\\\"), # corresponds to SQL DATE\\n \\\"event_type\\\": pd.Series(dtype=\\\"string\\\"),\\n \\\"plan_name\\\": pd.Series(dtype=\\\"string\\\"), # can be NULL for cancel events\\n \\\"monthly_amount\\\": pd.Series(dtype=\\\"float\\\") # corresponds to DECIMAL(10,2)\\n})\"],\"database_schema\":{\"subscription_events\":{\"event_id\":\"INT\",\"user_id\":\"INT\",\"event_date\":\"DATE\",\"event_type\":\"VARCHAR(20)\",\"plan_name\":\"VARCHAR(20)\",\"monthly_amount\":\"DECIMAL(10, 2)\"}}}",
|
||
"judgerAvailable": true,
|
||
"judgeType": "large",
|
||
"mysqlSchemas": [
|
||
"CREATE TABLE if not exists subscription_events (\n event_id INT,\n user_id INT,\n event_date DATE,\n event_type VARCHAR(20),\n plan_name VARCHAR(20),\n monthly_amount DECIMAL(10,2)\n)",
|
||
"Truncate table subscription_events",
|
||
"insert into subscription_events (event_id, user_id, event_date, event_type, plan_name, monthly_amount) values ('1', '501', '2024-01-01', 'start', 'premium', '29.99')",
|
||
"insert into subscription_events (event_id, user_id, event_date, event_type, plan_name, monthly_amount) values ('2', '501', '2024-02-15', 'downgrade', 'standard', '19.99')",
|
||
"insert into subscription_events (event_id, user_id, event_date, event_type, plan_name, monthly_amount) values ('3', '501', '2024-03-20', 'downgrade', 'basic', '9.99')",
|
||
"insert into subscription_events (event_id, user_id, event_date, event_type, plan_name, monthly_amount) values ('4', '502', '2024-01-05', 'start', 'standard', '19.99')",
|
||
"insert into subscription_events (event_id, user_id, event_date, event_type, plan_name, monthly_amount) values ('5', '502', '2024-02-10', 'upgrade', 'premium', '29.99')",
|
||
"insert into subscription_events (event_id, user_id, event_date, event_type, plan_name, monthly_amount) values ('6', '502', '2024-03-15', 'downgrade', 'basic', '9.99')",
|
||
"insert into subscription_events (event_id, user_id, event_date, event_type, plan_name, monthly_amount) values ('7', '503', '2024-01-10', 'start', 'basic', '9.99')",
|
||
"insert into subscription_events (event_id, user_id, event_date, event_type, plan_name, monthly_amount) values ('8', '503', '2024-02-20', 'upgrade', 'standard', '19.99')",
|
||
"insert into subscription_events (event_id, user_id, event_date, event_type, plan_name, monthly_amount) values ('9', '503', '2024-03-25', 'upgrade', 'premium', '29.99')",
|
||
"insert into subscription_events (event_id, user_id, event_date, event_type, plan_name, monthly_amount) values ('10', '504', '2024-01-15', 'start', 'premium', '29.99')",
|
||
"insert into subscription_events (event_id, user_id, event_date, event_type, plan_name, monthly_amount) values ('11', '504', '2024-03-01', 'downgrade', 'standard', '19.99')",
|
||
"insert into subscription_events (event_id, user_id, event_date, event_type, plan_name, monthly_amount) values ('12', '504', '2024-03-30', 'cancel', NULL, '0.0')",
|
||
"insert into subscription_events (event_id, user_id, event_date, event_type, plan_name, monthly_amount) values ('13', '505', '2024-02-01', 'start', 'basic', '9.99')",
|
||
"insert into subscription_events (event_id, user_id, event_date, event_type, plan_name, monthly_amount) values ('14', '505', '2024-02-28', 'upgrade', 'standard', '19.99')",
|
||
"insert into subscription_events (event_id, user_id, event_date, event_type, plan_name, monthly_amount) values ('15', '506', '2024-01-20', 'start', 'premium', '29.99')",
|
||
"insert into subscription_events (event_id, user_id, event_date, event_type, plan_name, monthly_amount) values ('16', '506', '2024-03-10', 'downgrade', 'basic', '9.99')"
|
||
],
|
||
"enableRunCode": true,
|
||
"envInfo": "{\"mysql\":[\"MySQL\",\"<p>\\u7248\\u672c\\uff1a<code>MySQL 8.0<\\/code><\\/p>\"],\"mssql\":[\"MS SQL Server\",\"<p>mssql server 2019.<\\/p>\"],\"oraclesql\":[\"Oracle\",\"<p>Oracle Sql 11.2.<\\/p>\"],\"pythondata\":[\"Pandas\",\"<p>Python 3.10 with Pandas 2.2.2 and NumPy 1.26.4<\\/p>\"],\"postgresql\":[\"PostgreSQL\",\"<p>PostgreSQL 16<\\/p>\"]}",
|
||
"book": null,
|
||
"isSubscribed": false,
|
||
"isDailyQuestion": false,
|
||
"dailyRecordStatus": null,
|
||
"editorType": "CKEDITOR",
|
||
"ugcQuestionId": null,
|
||
"style": "LEETCODE",
|
||
"exampleTestcases": "{\"headers\":{\"subscription_events\":[\"event_id\",\"user_id\",\"event_date\",\"event_type\",\"plan_name\",\"monthly_amount\"]},\"rows\":{\"subscription_events\":[[1,501,\"2024-01-01\",\"start\",\"premium\",29.99],[2,501,\"2024-02-15\",\"downgrade\",\"standard\",19.99],[3,501,\"2024-03-20\",\"downgrade\",\"basic\",9.99],[4,502,\"2024-01-05\",\"start\",\"standard\",19.99],[5,502,\"2024-02-10\",\"upgrade\",\"premium\",29.99],[6,502,\"2024-03-15\",\"downgrade\",\"basic\",9.99],[7,503,\"2024-01-10\",\"start\",\"basic\",9.99],[8,503,\"2024-02-20\",\"upgrade\",\"standard\",19.99],[9,503,\"2024-03-25\",\"upgrade\",\"premium\",29.99],[10,504,\"2024-01-15\",\"start\",\"premium\",29.99],[11,504,\"2024-03-01\",\"downgrade\",\"standard\",19.99],[12,504,\"2024-03-30\",\"cancel\",null,0.00],[13,505,\"2024-02-01\",\"start\",\"basic\",9.99],[14,505,\"2024-02-28\",\"upgrade\",\"standard\",19.99],[15,506,\"2024-01-20\",\"start\",\"premium\",29.99],[16,506,\"2024-03-10\",\"downgrade\",\"basic\",9.99]]}}",
|
||
"__typename": "QuestionNode"
|
||
}
|
||
}
|
||
} |