Skip to content

Commit 0b6384b

Browse files
committed
deploy: d02155a
1 parent 9842f01 commit 0b6384b

File tree

6 files changed

+817
-215
lines changed

6 files changed

+817
-215
lines changed

en/lc/1565/index.html

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40191,9 +40191,9 @@
4019140191
<ul class="md-nav__list">
4019240192

4019340193
<li class="md-nav__item">
40194-
<a href="#solution-1" class="md-nav__link">
40194+
<a href="#solution-1-conditional-filtering-grouping-statistics" class="md-nav__link">
4019540195
<span class="md-ellipsis">
40196-
Solution 1
40196+
Solution 1: Conditional Filtering + Grouping Statistics
4019740197
</span>
4019840198
</a>
4019940199

@@ -81407,7 +81407,7 @@ <h2 id="description">Description</h2>
8140781407
<p><strong class="example">Example 1:</strong></p>
8140881408

8140981409
<pre>
81410-
<strong>Input:</strong>
81410+
<strong>Input:</strong>
8141181411
Orders table:
8141281412
+----------+------------+-------------+------------+
8141381413
| order_id | order_date | customer_id | invoice |
@@ -81423,7 +81423,7 @@ <h2 id="description">Description</h2>
8142381423
| 9 | 2021-01-07 | 3 | 31 |
8142481424
| 10 | 2021-01-15 | 2 | 20 |
8142581425
+----------+------------+-------------+------------+
81426-
<strong>Output:</strong>
81426+
<strong>Output:</strong>
8142781427
+---------+-------------+----------------+
8142881428
| month | order_count | customer_count |
8142981429
+---------+-------------+----------------+
@@ -81432,7 +81432,7 @@ <h2 id="description">Description</h2>
8143281432
| 2020-12 | 2 | 1 |
8143381433
| 2021-01 | 1 | 1 |
8143481434
+---------+-------------+----------------+
81435-
<strong>Explanation:</strong>
81435+
<strong>Explanation:</strong>
8143681436
In September 2020 we have two orders from 2 different customers with invoices &gt; $20.
8143781437
In October 2020 we have two orders from 1 customer, and only one of the two orders has invoice &gt; $20.
8143881438
In November 2020 we have two orders from 2 different customers but invoices &lt; $20, so we don&#39;t include that month.
@@ -81445,8 +81445,9 @@ <h2 id="description">Description</h2>
8144581445
<h2 id="solutions">Solutions</h2>
8144681446
<!-- solution:start -->
8144781447

81448-
<h3 id="solution-1">Solution 1</h3>
81449-
<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>
81448+
<h3 id="solution-1-conditional-filtering-grouping-statistics">Solution 1: Conditional Filtering + Grouping Statistics</h3>
81449+
<p>We can first filter out orders with an amount greater than $20$, and then group by month to count the number of orders and customers.</p>
81450+
<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>
8145081451
<div class="tabbed-content">
8145181452
<div class="tabbed-block">
8145281453
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
@@ -81463,7 +81464,41 @@ <h3 id="solution-1">Solution 1</h3>
8146381464
<span class="w"> </span><span class="k">COUNT</span><span class="p">(</span><span class="k">DISTINCT</span><span class="w"> </span><span class="n">customer_id</span><span class="p">)</span><span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">customer_count</span>
8146481465
<span class="k">FROM</span><span class="w"> </span><span class="n">Orders</span>
8146581466
<span class="k">WHERE</span><span class="w"> </span><span class="n">invoice</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">20</span>
81466-
<span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="k">month</span><span class="p">;</span>
81467+
<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>
81468+
</code></pre></div></td></tr></table></div>
81469+
</div>
81470+
<div class="tabbed-block">
81471+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
81472+
<span class="normal"> 2</span>
81473+
<span class="normal"> 3</span>
81474+
<span class="normal"> 4</span>
81475+
<span class="normal"> 5</span>
81476+
<span class="normal"> 6</span>
81477+
<span class="normal"> 7</span>
81478+
<span class="normal"> 8</span>
81479+
<span class="normal"> 9</span>
81480+
<span class="normal">10</span>
81481+
<span class="normal">11</span>
81482+
<span class="normal">12</span>
81483+
<span class="normal">13</span>
81484+
<span class="normal">14</span>
81485+
<span class="normal">15</span>
81486+
<span class="normal">16</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
81487+
81488+
81489+
<span class="k">def</span> <span class="nf">unique_orders_and_customers</span><span class="p">(</span><span class="n">orders</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>
81490+
<span class="n">filtered_orders</span> <span class="o">=</span> <span class="n">orders</span><span class="p">[</span><span class="n">orders</span><span class="p">[</span><span class="s2">&quot;invoice&quot;</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">20</span><span class="p">]</span>
81491+
<span class="n">filtered_orders</span><span class="p">[</span><span class="s2">&quot;month&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span>
81492+
<span class="n">filtered_orders</span><span class="p">[</span><span class="s2">&quot;order_date&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">dt</span><span class="o">.</span><span class="n">to_period</span><span class="p">(</span><span class="s2">&quot;M&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">str</span><span class="p">)</span>
81493+
<span class="p">)</span>
81494+
<span class="n">result</span> <span class="o">=</span> <span class="p">(</span>
81495+
<span class="n">filtered_orders</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="s2">&quot;month&quot;</span><span class="p">)</span>
81496+
<span class="o">.</span><span class="n">agg</span><span class="p">(</span>
81497+
<span class="n">order_count</span><span class="o">=</span><span class="p">(</span><span class="s2">&quot;order_id&quot;</span><span class="p">,</span> <span class="s2">&quot;count&quot;</span><span class="p">),</span> <span class="n">customer_count</span><span class="o">=</span><span class="p">(</span><span class="s2">&quot;customer_id&quot;</span><span class="p">,</span> <span class="s2">&quot;nunique&quot;</span><span class="p">)</span>
81498+
<span class="p">)</span>
81499+
<span class="o">.</span><span class="n">reset_index</span><span class="p">()</span>
81500+
<span class="p">)</span>
81501+
<span class="k">return</span> <span class="n">result</span>
8146781502
</code></pre></div></td></tr></table></div>
8146881503
</div>
8146981504
</div>

0 commit comments

Comments
 (0)