Skip to content

Commit e5746e0

Browse files
committed
deploy: 4f3ccae
1 parent 3744b08 commit e5746e0

File tree

14 files changed

+210
-12
lines changed

14 files changed

+210
-12
lines changed

en/lc/3056/index.html

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73664,7 +73664,7 @@ <h2 id="description">Description</h2>
7366473664
<h2 id="solutions">Solutions</h2>
7366573665
<h3 id="solution-1-equi-join-group-by-summation">Solution 1: Equi-Join + Group By Summation</h3>
7366673666
<p>We can perform an equi-join to connect the <code>Activities</code> table and the <code>Age</code> table based on <code>user_id</code>. Then, group by <code>age_bucket</code> and finally calculate the percentage of sends and opens for each age group.</p>
73667-
<div class="tabbed-set tabbed-alternate" data-tabs="1:1"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">MySQL</label></div>
73667+
<div class="tabbed-set tabbed-alternate" data-tabs="1:2"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">MySQL</label><label for="__tabbed_1_2">Python3</label></div>
7366873668
<div class="tabbed-content">
7366973669
<div class="tabbed-block">
7367073670
<div class="highlight"><pre><span></span><code><span class="o">#</span><span class="w"> </span><span class="k">Write</span><span class="w"> </span><span class="n">your</span><span class="w"> </span><span class="n">MySQL</span><span class="w"> </span><span class="n">query</span><span class="w"> </span><span class="k">statement</span><span class="w"> </span><span class="n">below</span>
@@ -73678,6 +73678,30 @@ <h3 id="solution-1-equi-join-group-by-summation">Solution 1: Equi-Join + Group B
7367873678
<span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
7367973679
</code></pre></div>
7368073680
</div>
73681+
<div class="tabbed-block">
73682+
<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
73683+
73684+
73685+
<span class="k">def</span> <span class="nf">snap_analysis</span><span class="p">(</span><span class="n">activities</span><span class="p">:</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">,</span> <span class="n">age</span><span class="p">:</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">:</span>
73686+
<span class="n">merged_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">activities</span><span class="p">,</span> <span class="n">age</span><span class="p">,</span> <span class="n">on</span><span class="o">=</span><span class="s2">&quot;user_id&quot;</span><span class="p">)</span>
73687+
<span class="n">total_time_per_age_activity</span> <span class="o">=</span> <span class="p">(</span>
73688+
<span class="n">merged_df</span><span class="o">.</span><span class="n">groupby</span><span class="p">([</span><span class="s2">&quot;age_bucket&quot;</span><span class="p">,</span> <span class="s2">&quot;activity_type&quot;</span><span class="p">])[</span><span class="s2">&quot;time_spent&quot;</span><span class="p">]</span>
73689+
<span class="o">.</span><span class="n">sum</span><span class="p">()</span>
73690+
<span class="o">.</span><span class="n">reset_index</span><span class="p">()</span>
73691+
<span class="p">)</span>
73692+
<span class="n">pivot_df</span> <span class="o">=</span> <span class="n">total_time_per_age_activity</span><span class="o">.</span><span class="n">pivot</span><span class="p">(</span>
73693+
<span class="n">index</span><span class="o">=</span><span class="s2">&quot;age_bucket&quot;</span><span class="p">,</span> <span class="n">columns</span><span class="o">=</span><span class="s2">&quot;activity_type&quot;</span><span class="p">,</span> <span class="n">values</span><span class="o">=</span><span class="s2">&quot;time_spent&quot;</span>
73694+
<span class="p">)</span><span class="o">.</span><span class="n">reset_index</span><span class="p">()</span>
73695+
<span class="n">pivot_df</span> <span class="o">=</span> <span class="n">pivot_df</span><span class="o">.</span><span class="n">fillna</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
73696+
<span class="n">pivot_df</span><span class="p">[</span><span class="s2">&quot;send_perc&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">round</span><span class="p">(</span>
73697+
<span class="mi">100</span> <span class="o">*</span> <span class="n">pivot_df</span><span class="p">[</span><span class="s2">&quot;send&quot;</span><span class="p">]</span> <span class="o">/</span> <span class="p">(</span><span class="n">pivot_df</span><span class="p">[</span><span class="s2">&quot;send&quot;</span><span class="p">]</span> <span class="o">+</span> <span class="n">pivot_df</span><span class="p">[</span><span class="s2">&quot;open&quot;</span><span class="p">]),</span> <span class="mi">2</span>
73698+
<span class="p">)</span>
73699+
<span class="n">pivot_df</span><span class="p">[</span><span class="s2">&quot;open_perc&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">round</span><span class="p">(</span>
73700+
<span class="mi">100</span> <span class="o">*</span> <span class="n">pivot_df</span><span class="p">[</span><span class="s2">&quot;open&quot;</span><span class="p">]</span> <span class="o">/</span> <span class="p">(</span><span class="n">pivot_df</span><span class="p">[</span><span class="s2">&quot;send&quot;</span><span class="p">]</span> <span class="o">+</span> <span class="n">pivot_df</span><span class="p">[</span><span class="s2">&quot;open&quot;</span><span class="p">]),</span> <span class="mi">2</span>
73701+
<span class="p">)</span>
73702+
<span class="k">return</span> <span class="n">pivot_df</span><span class="p">[[</span><span class="s2">&quot;age_bucket&quot;</span><span class="p">,</span> <span class="s2">&quot;send_perc&quot;</span><span class="p">,</span> <span class="s2">&quot;open_perc&quot;</span><span class="p">]]</span>
73703+
</code></pre></div>
73704+
</div>
7368173705
</div>
7368273706
</div>
7368373707
<!-- end -->

en/lc/3057/index.html

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73650,7 +73650,7 @@ <h2 id="solutions">Solutions</h2>
7365073650
<h3 id="solution-1-grouping-statistics-equi-join">Solution 1: Grouping Statistics + Equi-Join</h3>
7365173651
<p>First, we join the <code>Project</code> table and the <code>Employees</code> table based on <code>employee_id</code>, then group by <code>team</code> to calculate the average workload of each team, and record it in the temporary table <code>T</code>.</p>
7365273652
<p>Then, we join the <code>Project</code> table and the <code>Employees</code> table again, and also join the <code>T</code> table, to find employees whose workload is greater than the average workload of the team. Finally, we sort by <code>employee_id</code> and <code>project_id</code>.</p>
73653-
<div class="tabbed-set tabbed-alternate" data-tabs="1:1"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">MySQL</label></div>
73653+
<div class="tabbed-set tabbed-alternate" data-tabs="1:2"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">MySQL</label><label for="__tabbed_1_2">Python3</label></div>
7365473654
<div class="tabbed-content">
7365573655
<div class="tabbed-block">
7365673656
<div class="highlight"><pre><span></span><code><span class="o">#</span><span class="w"> </span><span class="k">Write</span><span class="w"> </span><span class="n">your</span><span class="w"> </span><span class="n">MySQL</span><span class="w"> </span><span class="n">query</span><span class="w"> </span><span class="k">statement</span><span class="w"> </span><span class="n">below</span>
@@ -73675,6 +73675,24 @@ <h3 id="solution-1-grouping-statistics-equi-join">Solution 1: Grouping Statistic
7367573675
<span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
7367673676
</code></pre></div>
7367773677
</div>
73678+
<div class="tabbed-block">
73679+
<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
73680+
73681+
73682+
<span class="k">def</span> <span class="nf">employees_with_above_avg_workload</span><span class="p">(</span>
73683+
<span class="n">project</span><span class="p">:</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">,</span> <span class="n">employees</span><span class="p">:</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span>
73684+
<span class="p">)</span> <span class="o">-&gt;</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">:</span>
73685+
<span class="n">merged_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">project</span><span class="p">,</span> <span class="n">employees</span><span class="p">,</span> <span class="n">on</span><span class="o">=</span><span class="s2">&quot;employee_id&quot;</span><span class="p">)</span>
73686+
<span class="n">avg_workload_per_team</span> <span class="o">=</span> <span class="n">merged_df</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s2">&quot;team&quot;</span><span class="p">)[</span><span class="s2">&quot;workload&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span><span class="o">.</span><span class="n">reset_index</span><span class="p">()</span>
73687+
<span class="n">merged_df</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span>
73688+
<span class="n">merged_df</span><span class="p">,</span> <span class="n">avg_workload_per_team</span><span class="p">,</span> <span class="n">on</span><span class="o">=</span><span class="s2">&quot;team&quot;</span><span class="p">,</span> <span class="n">suffixes</span><span class="o">=</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="s2">&quot;_avg&quot;</span><span class="p">)</span>
73689+
<span class="p">)</span>
73690+
<span class="n">ans</span> <span class="o">=</span> <span class="n">merged_df</span><span class="p">[</span><span class="n">merged_df</span><span class="p">[</span><span class="s2">&quot;workload&quot;</span><span class="p">]</span> <span class="o">&gt;</span> <span class="n">merged_df</span><span class="p">[</span><span class="s2">&quot;workload_avg&quot;</span><span class="p">]]</span>
73691+
<span class="n">ans</span> <span class="o">=</span> <span class="n">ans</span><span class="p">[[</span><span class="s2">&quot;employee_id&quot;</span><span class="p">,</span> <span class="s2">&quot;project_id&quot;</span><span class="p">,</span> <span class="s2">&quot;name&quot;</span><span class="p">,</span> <span class="s2">&quot;workload&quot;</span><span class="p">]]</span>
73692+
<span class="n">ans</span> <span class="o">=</span> <span class="n">ans</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="n">columns</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;name&quot;</span><span class="p">:</span> <span class="s2">&quot;employee_name&quot;</span><span class="p">,</span> <span class="s2">&quot;workload&quot;</span><span class="p">:</span> <span class="s2">&quot;project_workload&quot;</span><span class="p">})</span>
73693+
<span class="k">return</span> <span class="n">ans</span><span class="o">.</span><span class="n">sort_values</span><span class="p">(</span><span class="n">by</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;employee_id&quot;</span><span class="p">,</span> <span class="s2">&quot;project_id&quot;</span><span class="p">])</span>
73694+
</code></pre></div>
73695+
</div>
7367873696
</div>
7367973697
</div>
7368073698
<!-- end -->

en/lc/3058/index.html

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73629,7 +73629,7 @@ <h2 id="solutions">Solutions</h2>
7362973629
<h3 id="solution-1-subquery">Solution 1: Subquery</h3>
7363073630
<p>First, we list all the friend relationships and record them in table <code>T</code>. Then we find the pairs of friends who do not have common friends.</p>
7363173631
<p>Next, we can use a subquery to find pairs of friends who do not have common friends, i.e., this pair of friends does not belong to any other person's friends.</p>
73632-
<div class="tabbed-set tabbed-alternate" data-tabs="1:1"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">MySQL</label></div>
73632+
<div class="tabbed-set tabbed-alternate" data-tabs="1:2"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">MySQL</label><label for="__tabbed_1_2">Python3</label></div>
7363373633
<div class="tabbed-content">
7363473634
<div class="tabbed-block">
7363573635
<div class="highlight"><pre><span></span><code><span class="o">#</span><span class="w"> </span><span class="k">Write</span><span class="w"> </span><span class="n">your</span><span class="w"> </span><span class="n">MySQL</span><span class="w"> </span><span class="n">query</span><span class="w"> </span><span class="k">statement</span><span class="w"> </span><span class="n">below</span>
@@ -73651,6 +73651,32 @@ <h3 id="solution-1-subquery">Solution 1: Subquery</h3>
7365173651
<span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
7365273652
</code></pre></div>
7365373653
</div>
73654+
<div class="tabbed-block">
73655+
<div class="highlight"><pre><span></span><code><span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
73656+
73657+
73658+
<span class="k">def</span> <span class="nf">friends_with_no_mutual_friends</span><span class="p">(</span><span class="n">friends</span><span class="p">:</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">:</span>
73659+
<span class="n">cp</span> <span class="o">=</span> <span class="n">friends</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
73660+
<span class="n">t</span> <span class="o">=</span> <span class="n">cp</span><span class="p">[[</span><span class="s2">&quot;user_id1&quot;</span><span class="p">,</span> <span class="s2">&quot;user_id2&quot;</span><span class="p">]]</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
73661+
<span class="n">t</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">concat</span><span class="p">(</span>
73662+
<span class="p">[</span>
73663+
<span class="n">t</span><span class="p">,</span>
73664+
<span class="n">cp</span><span class="p">[[</span><span class="s2">&quot;user_id2&quot;</span><span class="p">,</span> <span class="s2">&quot;user_id1&quot;</span><span class="p">]]</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span>
73665+
<span class="n">columns</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;user_id2&quot;</span><span class="p">:</span> <span class="s2">&quot;user_id1&quot;</span><span class="p">,</span> <span class="s2">&quot;user_id1&quot;</span><span class="p">:</span> <span class="s2">&quot;user_id2&quot;</span><span class="p">}</span>
73666+
<span class="p">),</span>
73667+
<span class="p">]</span>
73668+
<span class="p">)</span>
73669+
<span class="n">merged</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">merge</span><span class="p">(</span><span class="n">t</span><span class="p">,</span> <span class="n">left_on</span><span class="o">=</span><span class="s2">&quot;user_id2&quot;</span><span class="p">,</span> <span class="n">right_on</span><span class="o">=</span><span class="s2">&quot;user_id2&quot;</span><span class="p">)</span>
73670+
<span class="n">ans</span> <span class="o">=</span> <span class="n">cp</span><span class="p">[</span>
73671+
<span class="o">~</span><span class="n">cp</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span>
73672+
<span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="s2">&quot;user_id1&quot;</span><span class="p">],</span> <span class="n">x</span><span class="p">[</span><span class="s2">&quot;user_id2&quot;</span><span class="p">])</span>
73673+
<span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">merged</span><span class="p">[</span><span class="s2">&quot;user_id1_x&quot;</span><span class="p">],</span> <span class="n">merged</span><span class="p">[</span><span class="s2">&quot;user_id1_y&quot;</span><span class="p">]),</span>
73674+
<span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
73675+
<span class="p">)</span>
73676+
<span class="p">]</span>
73677+
<span class="k">return</span> <span class="n">ans</span><span class="o">.</span><span class="n">sort_values</span><span class="p">(</span><span class="n">by</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;user_id1&quot;</span><span class="p">,</span> <span class="s2">&quot;user_id2&quot;</span><span class="p">])</span>
73678+
</code></pre></div>
73679+
</div>
7365473680
</div>
7365573681
</div>
7365673682
<!-- end -->

0 commit comments

Comments
 (0)