|
@@ -0,0 +1,1671 @@
|
|
|
|
+{
|
|
|
|
+ "cells": [
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "markdown",
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "source": [
|
|
|
|
+ "\n",
|
|
|
|
+ "# Guided Project: Sales Performance Analysis with SQL\n",
|
|
|
|
+ "## Learn to combine SQL's skills we've learned to perform practical data analysis\n",
|
|
|
|
+ "## Dataquest"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": 1,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [
|
|
|
|
+ {
|
|
|
|
+ "name": "stdout",
|
|
|
|
+ "output_type": "stream",
|
|
|
|
+ "text": [
|
|
|
|
+ " * sqlite://\n",
|
|
|
|
+ "Done.\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "data": {
|
|
|
|
+ "text/plain": [
|
|
|
|
+ "[]"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "execution_count": 1,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "output_type": "execute_result"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "source": [
|
|
|
|
+ "%load_ext sql\n",
|
|
|
|
+ "%sql sqlite://\n",
|
|
|
|
+ "%sql attach \"sales.db\" as sales"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "markdown",
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "source": [
|
|
|
|
+ "# Guided Project Introduction"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": 2,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [
|
|
|
|
+ {
|
|
|
|
+ "name": "stdout",
|
|
|
|
+ "output_type": "stream",
|
|
|
|
+ "text": [
|
|
|
|
+ " * sqlite://\n",
|
|
|
|
+ "Done.\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "data": {
|
|
|
|
+ "text/html": [
|
|
|
|
+ "<table>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <th>id</th>\n",
|
|
|
|
+ " <th>name</th>\n",
|
|
|
|
+ " <th>description</th>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>1</td>\n",
|
|
|
|
+ " <td>products</td>\n",
|
|
|
|
+ " <td>Items in the stores</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>2</td>\n",
|
|
|
|
+ " <td>regions</td>\n",
|
|
|
|
+ " <td>Geographic areas where stores exist</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>3</td>\n",
|
|
|
|
+ " <td>sales</td>\n",
|
|
|
|
+ " <td>Transactions in the store alongside with product, region, and time dimensions</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>4</td>\n",
|
|
|
|
+ " <td>sales_details</td>\n",
|
|
|
|
+ " <td>Transactions in the stores with several details</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>5</td>\n",
|
|
|
|
+ " <td>table_name</td>\n",
|
|
|
|
+ " <td>Tables in the database</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>6</td>\n",
|
|
|
|
+ " <td>time</td>\n",
|
|
|
|
+ " <td>Dates</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ "</table>"
|
|
|
|
+ ],
|
|
|
|
+ "text/plain": [
|
|
|
|
+ "[(1, 'products', 'Items in the stores'),\n",
|
|
|
|
+ " (2, 'regions', 'Geographic areas where stores exist'),\n",
|
|
|
|
+ " (3, 'sales', 'Transactions in the store alongside with product, region, and time dimensions'),\n",
|
|
|
|
+ " (4, 'sales_details', 'Transactions in the stores with several details'),\n",
|
|
|
|
+ " (5, 'table_name', 'Tables in the database'),\n",
|
|
|
|
+ " (6, 'time', 'Dates')]"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "execution_count": 2,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "output_type": "execute_result"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "source": [
|
|
|
|
+ "%%sql\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "-- Title: Sales Performance Analysis\n",
|
|
|
|
+ "-- Description: we are trying to analyze the sales.db databases to find meanningful trends using SQL.\n",
|
|
|
|
+ "-- Goal: Our goal is to find the share of sales of the top three regions, the frequently bought products in these top three countrie and the most suitable days for intense marketing and promotion?\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "-- table_name table's content.\n",
|
|
|
|
+ "SELECT *\n",
|
|
|
|
+ " FROM table_name;\n",
|
|
|
|
+ " "
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "markdown",
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "source": [
|
|
|
|
+ "# Getting to know the database"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": 3,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [
|
|
|
|
+ {
|
|
|
|
+ "name": "stdout",
|
|
|
|
+ "output_type": "stream",
|
|
|
|
+ "text": [
|
|
|
|
+ " * sqlite://\n",
|
|
|
|
+ "Done.\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "data": {
|
|
|
|
+ "text/html": [
|
|
|
|
+ "<table>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <th>product_id</th>\n",
|
|
|
|
+ " <th>product_name</th>\n",
|
|
|
|
+ " <th>product_description</th>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>1</td>\n",
|
|
|
|
+ " <td>Puff Pastry - Slab</td>\n",
|
|
|
|
+ " <td>None</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>2</td>\n",
|
|
|
|
+ " <td>Lamb - Loin Chops</td>\n",
|
|
|
|
+ " <td>None</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>3</td>\n",
|
|
|
|
+ " <td>Flour - Fast / Rapid</td>\n",
|
|
|
|
+ " <td>None</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ "</table>"
|
|
|
|
+ ],
|
|
|
|
+ "text/plain": [
|
|
|
|
+ "[(1, 'Puff Pastry - Slab', None),\n",
|
|
|
|
+ " (2, 'Lamb - Loin Chops', None),\n",
|
|
|
|
+ " (3, 'Flour - Fast / Rapid', None)]"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "execution_count": 3,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "output_type": "execute_result"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "source": [
|
|
|
|
+ "%%sql\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "-- the first three rows of each table from our database\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "SELECT *\n",
|
|
|
|
+ " FROM products\n",
|
|
|
|
+ " LIMIT 3;"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": 4,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [
|
|
|
|
+ {
|
|
|
|
+ "name": "stdout",
|
|
|
|
+ "output_type": "stream",
|
|
|
|
+ "text": [
|
|
|
|
+ " * sqlite://\n",
|
|
|
|
+ "Done.\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "data": {
|
|
|
|
+ "text/html": [
|
|
|
|
+ "<table>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <th>region_id</th>\n",
|
|
|
|
+ " <th>region_name</th>\n",
|
|
|
|
+ " <th>region_description</th>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>1</td>\n",
|
|
|
|
+ " <td>Indonesia</td>\n",
|
|
|
|
+ " <td>None</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>2</td>\n",
|
|
|
|
+ " <td>Portugal</td>\n",
|
|
|
|
+ " <td>None</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>3</td>\n",
|
|
|
|
+ " <td>Netherlands</td>\n",
|
|
|
|
+ " <td>None</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ "</table>"
|
|
|
|
+ ],
|
|
|
|
+ "text/plain": [
|
|
|
|
+ "[(1, 'Indonesia', None), (2, 'Portugal', None), (3, 'Netherlands', None)]"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "execution_count": 4,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "output_type": "execute_result"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "source": [
|
|
|
|
+ "%%sql\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "SELECT *\n",
|
|
|
|
+ " FROM regions\n",
|
|
|
|
+ " LIMIT 3;"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": 5,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [
|
|
|
|
+ {
|
|
|
|
+ "name": "stdout",
|
|
|
|
+ "output_type": "stream",
|
|
|
|
+ "text": [
|
|
|
|
+ " * sqlite://\n",
|
|
|
|
+ "Done.\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "data": {
|
|
|
|
+ "text/html": [
|
|
|
|
+ "<table>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <th>sales_id</th>\n",
|
|
|
|
+ " <th>time_id</th>\n",
|
|
|
|
+ " <th>product_id</th>\n",
|
|
|
|
+ " <th>region_id</th>\n",
|
|
|
|
+ " <th>transaction_amount</th>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>4</td>\n",
|
|
|
|
+ " <td>868</td>\n",
|
|
|
|
+ " <td>227</td>\n",
|
|
|
|
+ " <td>154</td>\n",
|
|
|
|
+ " <td>-39864</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>5</td>\n",
|
|
|
|
+ " <td>436</td>\n",
|
|
|
|
+ " <td>684</td>\n",
|
|
|
|
+ " <td>724</td>\n",
|
|
|
|
+ " <td>79272</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>6</td>\n",
|
|
|
|
+ " <td>529</td>\n",
|
|
|
|
+ " <td>176</td>\n",
|
|
|
|
+ " <td>478</td>\n",
|
|
|
|
+ " <td>-33632</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ "</table>"
|
|
|
|
+ ],
|
|
|
|
+ "text/plain": [
|
|
|
|
+ "[(4, 868, 227, 154, -39864),\n",
|
|
|
|
+ " (5, 436, 684, 724, 79272),\n",
|
|
|
|
+ " (6, 529, 176, 478, -33632)]"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "execution_count": 5,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "output_type": "execute_result"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "source": [
|
|
|
|
+ "%%sql\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "SELECT *\n",
|
|
|
|
+ " FROM sales\n",
|
|
|
|
+ " LIMIT 3;"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": 6,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [
|
|
|
|
+ {
|
|
|
|
+ "name": "stdout",
|
|
|
|
+ "output_type": "stream",
|
|
|
|
+ "text": [
|
|
|
|
+ " * sqlite://\n",
|
|
|
|
+ "Done.\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "data": {
|
|
|
|
+ "text/html": [
|
|
|
|
+ "<table>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <th>time_id</th>\n",
|
|
|
|
+ " <th>time_datetime</th>\n",
|
|
|
|
+ " <th>time_year</th>\n",
|
|
|
|
+ " <th>time_month</th>\n",
|
|
|
|
+ " <th>time_day</th>\n",
|
|
|
|
+ " <th>time_hour</th>\n",
|
|
|
|
+ " <th>time_minute</th>\n",
|
|
|
|
+ " <th>time_second</th>\n",
|
|
|
|
+ " <th>time_day_of_week</th>\n",
|
|
|
|
+ " <th>product_name</th>\n",
|
|
|
|
+ " <th>region_name</th>\n",
|
|
|
|
+ " <th>transaction_amount</th>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>868</td>\n",
|
|
|
|
+ " <td>2013-06-26 13:50:36</td>\n",
|
|
|
|
+ " <td>2013</td>\n",
|
|
|
|
+ " <td>6</td>\n",
|
|
|
|
+ " <td>26</td>\n",
|
|
|
|
+ " <td>13</td>\n",
|
|
|
|
+ " <td>50</td>\n",
|
|
|
|
+ " <td>36</td>\n",
|
|
|
|
+ " <td>4</td>\n",
|
|
|
|
+ " <td>Chickensplit Half</td>\n",
|
|
|
|
+ " <td>Pakistan</td>\n",
|
|
|
|
+ " <td>-39864</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>436</td>\n",
|
|
|
|
+ " <td>2012-06-14 09:34:24</td>\n",
|
|
|
|
+ " <td>2012</td>\n",
|
|
|
|
+ " <td>6</td>\n",
|
|
|
|
+ " <td>14</td>\n",
|
|
|
|
+ " <td>9</td>\n",
|
|
|
|
+ " <td>34</td>\n",
|
|
|
|
+ " <td>24</td>\n",
|
|
|
|
+ " <td>5</td>\n",
|
|
|
|
+ " <td>Soup - Beef Conomme, Dry</td>\n",
|
|
|
|
+ " <td>Poland</td>\n",
|
|
|
|
+ " <td>79272</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>529</td>\n",
|
|
|
|
+ " <td>2015-08-12 02:58:16</td>\n",
|
|
|
|
+ " <td>2015</td>\n",
|
|
|
|
+ " <td>8</td>\n",
|
|
|
|
+ " <td>12</td>\n",
|
|
|
|
+ " <td>2</td>\n",
|
|
|
|
+ " <td>58</td>\n",
|
|
|
|
+ " <td>16</td>\n",
|
|
|
|
+ " <td>4</td>\n",
|
|
|
|
+ " <td>Tea - Earl Grey</td>\n",
|
|
|
|
+ " <td>China</td>\n",
|
|
|
|
+ " <td>-33632</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ "</table>"
|
|
|
|
+ ],
|
|
|
|
+ "text/plain": [
|
|
|
|
+ "[(868, '2013-06-26 13:50:36', 2013, 6, 26, 13, 50, 36, 4, 'Chickensplit Half', 'Pakistan', -39864),\n",
|
|
|
|
+ " (436, '2012-06-14 09:34:24', 2012, 6, 14, 9, 34, 24, 5, 'Soup - Beef Conomme, Dry', 'Poland', 79272),\n",
|
|
|
|
+ " (529, '2015-08-12 02:58:16', 2015, 8, 12, 2, 58, 16, 4, 'Tea - Earl Grey', 'China', -33632)]"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "execution_count": 6,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "output_type": "execute_result"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "source": [
|
|
|
|
+ "%%sql\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "SELECT *\n",
|
|
|
|
+ " FROM sales_details\n",
|
|
|
|
+ " LIMIT 3;"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": 7,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [
|
|
|
|
+ {
|
|
|
|
+ "name": "stdout",
|
|
|
|
+ "output_type": "stream",
|
|
|
|
+ "text": [
|
|
|
|
+ " * sqlite://\n",
|
|
|
|
+ "Done.\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "data": {
|
|
|
|
+ "text/html": [
|
|
|
|
+ "<table>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <th>time_id</th>\n",
|
|
|
|
+ " <th>time_datetime</th>\n",
|
|
|
|
+ " <th>time_year</th>\n",
|
|
|
|
+ " <th>time_month</th>\n",
|
|
|
|
+ " <th>time_day</th>\n",
|
|
|
|
+ " <th>time_hour</th>\n",
|
|
|
|
+ " <th>time_minute</th>\n",
|
|
|
|
+ " <th>time_second</th>\n",
|
|
|
|
+ " <th>time_day_of_week</th>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>1</td>\n",
|
|
|
|
+ " <td>2017-10-11 19:52:57</td>\n",
|
|
|
|
+ " <td>2017</td>\n",
|
|
|
|
+ " <td>10</td>\n",
|
|
|
|
+ " <td>11</td>\n",
|
|
|
|
+ " <td>19</td>\n",
|
|
|
|
+ " <td>52</td>\n",
|
|
|
|
+ " <td>57</td>\n",
|
|
|
|
+ " <td>4</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>2</td>\n",
|
|
|
|
+ " <td>2018-01-24 19:15:24</td>\n",
|
|
|
|
+ " <td>2018</td>\n",
|
|
|
|
+ " <td>1</td>\n",
|
|
|
|
+ " <td>24</td>\n",
|
|
|
|
+ " <td>19</td>\n",
|
|
|
|
+ " <td>15</td>\n",
|
|
|
|
+ " <td>24</td>\n",
|
|
|
|
+ " <td>4</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>3</td>\n",
|
|
|
|
+ " <td>2017-12-06 19:45:58</td>\n",
|
|
|
|
+ " <td>2017</td>\n",
|
|
|
|
+ " <td>12</td>\n",
|
|
|
|
+ " <td>6</td>\n",
|
|
|
|
+ " <td>19</td>\n",
|
|
|
|
+ " <td>45</td>\n",
|
|
|
|
+ " <td>58</td>\n",
|
|
|
|
+ " <td>4</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ "</table>"
|
|
|
|
+ ],
|
|
|
|
+ "text/plain": [
|
|
|
|
+ "[(1, '2017-10-11 19:52:57', 2017, 10, 11, 19, 52, 57, 4),\n",
|
|
|
|
+ " (2, '2018-01-24 19:15:24', 2018, 1, 24, 19, 15, 24, 4),\n",
|
|
|
|
+ " (3, '2017-12-06 19:45:58', 2017, 12, 6, 19, 45, 58, 4)]"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "execution_count": 7,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "output_type": "execute_result"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "source": [
|
|
|
|
+ "%%sql\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "SELECT *\n",
|
|
|
|
+ " FROM time\n",
|
|
|
|
+ " LIMIT 3;"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "markdown",
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "source": [
|
|
|
|
+ "\n",
|
|
|
|
+ "# Identifying the Tables We Need"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": 8,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [
|
|
|
|
+ {
|
|
|
|
+ "name": "stdout",
|
|
|
|
+ "output_type": "stream",
|
|
|
|
+ "text": [
|
|
|
|
+ " * sqlite://\n",
|
|
|
|
+ "Done.\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "data": {
|
|
|
|
+ "text/html": [
|
|
|
|
+ "<table>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <th>selected_table</th>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>sales_details</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ "</table>"
|
|
|
|
+ ],
|
|
|
|
+ "text/plain": [
|
|
|
|
+ "[('sales_details',)]"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "execution_count": 8,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "output_type": "execute_result"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "source": [
|
|
|
|
+ "%%sql\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "-- Selecting the identified table.\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "SELECT 'sales_details' AS selected_table;\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": 9,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [
|
|
|
|
+ {
|
|
|
|
+ "name": "stdout",
|
|
|
|
+ "output_type": "stream",
|
|
|
|
+ "text": [
|
|
|
|
+ " * sqlite://\n",
|
|
|
|
+ "Done.\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "data": {
|
|
|
|
+ "text/html": [
|
|
|
|
+ "<table>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <th>num_rows</th>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>1000</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ "</table>"
|
|
|
|
+ ],
|
|
|
|
+ "text/plain": [
|
|
|
|
+ "[(1000,)]"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "execution_count": 9,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "output_type": "execute_result"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "source": [
|
|
|
|
+ "%%sql\n",
|
|
|
|
+ "-- Counting the rows of the selected table.\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "SELECT COUNT(*) AS num_rows\n",
|
|
|
|
+ " FROM sales_details;"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "markdown",
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "source": [
|
|
|
|
+ "\n",
|
|
|
|
+ "# Filtering interesting rows\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": 10,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [
|
|
|
|
+ {
|
|
|
|
+ "name": "stdout",
|
|
|
|
+ "output_type": "stream",
|
|
|
|
+ "text": [
|
|
|
|
+ " * sqlite://\n",
|
|
|
|
+ "Done.\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "data": {
|
|
|
|
+ "text/html": [
|
|
|
|
+ "<table>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <th>time_id</th>\n",
|
|
|
|
+ " <th>time_datetime</th>\n",
|
|
|
|
+ " <th>time_year</th>\n",
|
|
|
|
+ " <th>time_month</th>\n",
|
|
|
|
+ " <th>time_day</th>\n",
|
|
|
|
+ " <th>time_hour</th>\n",
|
|
|
|
+ " <th>time_minute</th>\n",
|
|
|
|
+ " <th>time_second</th>\n",
|
|
|
|
+ " <th>time_day_of_week</th>\n",
|
|
|
|
+ " <th>product_name</th>\n",
|
|
|
|
+ " <th>region_name</th>\n",
|
|
|
|
+ " <th>transaction_amount</th>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>436</td>\n",
|
|
|
|
+ " <td>2012-06-14 09:34:24</td>\n",
|
|
|
|
+ " <td>2012</td>\n",
|
|
|
|
+ " <td>6</td>\n",
|
|
|
|
+ " <td>14</td>\n",
|
|
|
|
+ " <td>9</td>\n",
|
|
|
|
+ " <td>34</td>\n",
|
|
|
|
+ " <td>24</td>\n",
|
|
|
|
+ " <td>5</td>\n",
|
|
|
|
+ " <td>Soup - Beef Conomme, Dry</td>\n",
|
|
|
|
+ " <td>Poland</td>\n",
|
|
|
|
+ " <td>79272</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>146</td>\n",
|
|
|
|
+ " <td>2015-02-06 12:18:18</td>\n",
|
|
|
|
+ " <td>2015</td>\n",
|
|
|
|
+ " <td>2</td>\n",
|
|
|
|
+ " <td>6</td>\n",
|
|
|
|
+ " <td>12</td>\n",
|
|
|
|
+ " <td>18</td>\n",
|
|
|
|
+ " <td>18</td>\n",
|
|
|
|
+ " <td>6</td>\n",
|
|
|
|
+ " <td>Wine - Spumante Bambino White</td>\n",
|
|
|
|
+ " <td>France</td>\n",
|
|
|
|
+ " <td>87806</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>483</td>\n",
|
|
|
|
+ " <td>2012-12-01 23:08:12</td>\n",
|
|
|
|
+ " <td>2012</td>\n",
|
|
|
|
+ " <td>12</td>\n",
|
|
|
|
+ " <td>1</td>\n",
|
|
|
|
+ " <td>23</td>\n",
|
|
|
|
+ " <td>8</td>\n",
|
|
|
|
+ " <td>12</td>\n",
|
|
|
|
+ " <td>7</td>\n",
|
|
|
|
+ " <td>Ketchup - Tomato</td>\n",
|
|
|
|
+ " <td>Kazakhstan</td>\n",
|
|
|
|
+ " <td>98243</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ "</table>"
|
|
|
|
+ ],
|
|
|
|
+ "text/plain": [
|
|
|
|
+ "[(436, '2012-06-14 09:34:24', 2012, 6, 14, 9, 34, 24, 5, 'Soup - Beef Conomme, Dry', 'Poland', 79272),\n",
|
|
|
|
+ " (146, '2015-02-06 12:18:18', 2015, 2, 6, 12, 18, 18, 6, 'Wine - Spumante Bambino White', 'France', 87806),\n",
|
|
|
|
+ " (483, '2012-12-01 23:08:12', 2012, 12, 1, 23, 8, 12, 7, 'Ketchup - Tomato', 'Kazakhstan', 98243)]"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "execution_count": 10,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "output_type": "execute_result"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "source": [
|
|
|
|
+ "%%sql\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "-- Filtering the rows related to positive values from the `transaction_amount` column.\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "SELECT *\n",
|
|
|
|
+ " FROM sales_details\n",
|
|
|
|
+ " WHERE transaction_amount >= 0 \n",
|
|
|
|
+ " LIMIT 3;"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": 11,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [
|
|
|
|
+ {
|
|
|
|
+ "name": "stdout",
|
|
|
|
+ "output_type": "stream",
|
|
|
|
+ "text": [
|
|
|
|
+ " * sqlite://\n",
|
|
|
|
+ "Done.\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "data": {
|
|
|
|
+ "text/html": [
|
|
|
|
+ "<table>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <th>num_positive_transactions</th>\n",
|
|
|
|
+ " <th>num_rows</th>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>494</td>\n",
|
|
|
|
+ " <td>494</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ "</table>"
|
|
|
|
+ ],
|
|
|
|
+ "text/plain": [
|
|
|
|
+ "[(494, 494)]"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "execution_count": 11,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "output_type": "execute_result"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "source": [
|
|
|
|
+ "%%sql\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "-- Counting the positive values from the `transaction_amount` column compared to the number of rows in the filtered table.\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "SELECT COUNT(transaction_amount) AS num_positive_transactions, COUNT(*) AS num_rows\n",
|
|
|
|
+ " FROM sales_details\n",
|
|
|
|
+ " WHERE transaction_amount >= 0;"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "markdown",
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "source": [
|
|
|
|
+ "3. Since the `num_positive_transactions` and `num_rows` are the same, we can conclude that there is no missing values in the `transaction_amount` column."
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "markdown",
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "source": [
|
|
|
|
+ "\n",
|
|
|
|
+ "# Total Transaction Amount for Each Region\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": 12,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [
|
|
|
|
+ {
|
|
|
|
+ "name": "stdout",
|
|
|
|
+ "output_type": "stream",
|
|
|
|
+ "text": [
|
|
|
|
+ " * sqlite://\n",
|
|
|
|
+ "Done.\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "data": {
|
|
|
|
+ "text/html": [
|
|
|
|
+ "<table>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <th>region_name</th>\n",
|
|
|
|
+ " <th>total_transaction_amount</th>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Afghanistan</td>\n",
|
|
|
|
+ " <td>131159</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Albania</td>\n",
|
|
|
|
+ " <td>235171</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Argentina</td>\n",
|
|
|
|
+ " <td>340583</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Armenia</td>\n",
|
|
|
|
+ " <td>77199</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Australia</td>\n",
|
|
|
|
+ " <td>187963</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Azerbaijan</td>\n",
|
|
|
|
+ " <td>159200</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Bahamas</td>\n",
|
|
|
|
+ " <td>148728</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Bangladesh</td>\n",
|
|
|
|
+ " <td>154916</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Belarus</td>\n",
|
|
|
|
+ " <td>25315</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Benin</td>\n",
|
|
|
|
+ " <td>34352</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Bolivia</td>\n",
|
|
|
|
+ " <td>10961</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Brazil</td>\n",
|
|
|
|
+ " <td>488294</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Burkina Faso</td>\n",
|
|
|
|
+ " <td>38329</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Cameroon</td>\n",
|
|
|
|
+ " <td>44091</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Canada</td>\n",
|
|
|
|
+ " <td>125266</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>China</td>\n",
|
|
|
|
+ " <td>3587812</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Colombia</td>\n",
|
|
|
|
+ " <td>356547</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Croatia</td>\n",
|
|
|
|
+ " <td>140920</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Cuba</td>\n",
|
|
|
|
+ " <td>196686</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Cyprus</td>\n",
|
|
|
|
+ " <td>577</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Czech Republic</td>\n",
|
|
|
|
+ " <td>94021</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Denmark</td>\n",
|
|
|
|
+ " <td>66339</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Dominican Republic</td>\n",
|
|
|
|
+ " <td>126001</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Ecuador</td>\n",
|
|
|
|
+ " <td>26411</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Egypt</td>\n",
|
|
|
|
+ " <td>59730</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Estonia</td>\n",
|
|
|
|
+ " <td>32547</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Ethiopia</td>\n",
|
|
|
|
+ " <td>276368</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Finland</td>\n",
|
|
|
|
+ " <td>196962</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>France</td>\n",
|
|
|
|
+ " <td>871335</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Georgia</td>\n",
|
|
|
|
+ " <td>90044</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Germany</td>\n",
|
|
|
|
+ " <td>74158</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Greece</td>\n",
|
|
|
|
+ " <td>346326</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Guatemala</td>\n",
|
|
|
|
+ " <td>9567</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Guinea</td>\n",
|
|
|
|
+ " <td>49896</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Guyana</td>\n",
|
|
|
|
+ " <td>124443</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Honduras</td>\n",
|
|
|
|
+ " <td>169520</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Hungary</td>\n",
|
|
|
|
+ " <td>80988</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Indonesia</td>\n",
|
|
|
|
+ " <td>2565442</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Iran</td>\n",
|
|
|
|
+ " <td>353566</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Iraq</td>\n",
|
|
|
|
+ " <td>96055</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Ireland</td>\n",
|
|
|
|
+ " <td>89760</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Israel</td>\n",
|
|
|
|
+ " <td>81269</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Ivory Coast</td>\n",
|
|
|
|
+ " <td>142272</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Japan</td>\n",
|
|
|
|
+ " <td>138545</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Kazakhstan</td>\n",
|
|
|
|
+ " <td>121368</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Kyrgyzstan</td>\n",
|
|
|
|
+ " <td>95798</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Laos</td>\n",
|
|
|
|
+ " <td>119385</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Latvia</td>\n",
|
|
|
|
+ " <td>74817</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Libya</td>\n",
|
|
|
|
+ " <td>81214</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Luxembourg</td>\n",
|
|
|
|
+ " <td>70793</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Macedonia</td>\n",
|
|
|
|
+ " <td>46793</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Madagascar</td>\n",
|
|
|
|
+ " <td>92723</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Malawi</td>\n",
|
|
|
|
+ " <td>122046</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Mali</td>\n",
|
|
|
|
+ " <td>85633</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Mauritius</td>\n",
|
|
|
|
+ " <td>42660</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Mexico</td>\n",
|
|
|
|
+ " <td>338072</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Mongolia</td>\n",
|
|
|
|
+ " <td>6955</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Morocco</td>\n",
|
|
|
|
+ " <td>97271</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Netherlands</td>\n",
|
|
|
|
+ " <td>87392</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>New Caledonia</td>\n",
|
|
|
|
+ " <td>31718</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Nicaragua</td>\n",
|
|
|
|
+ " <td>54865</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Nigeria</td>\n",
|
|
|
|
+ " <td>150886</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Norway</td>\n",
|
|
|
|
+ " <td>214806</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Pakistan</td>\n",
|
|
|
|
+ " <td>121607</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Palestinian Territory</td>\n",
|
|
|
|
+ " <td>291565</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Peru</td>\n",
|
|
|
|
+ " <td>190533</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Philippines</td>\n",
|
|
|
|
+ " <td>1097122</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Poland</td>\n",
|
|
|
|
+ " <td>1342022</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Portugal</td>\n",
|
|
|
|
+ " <td>559054</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Russia</td>\n",
|
|
|
|
+ " <td>1053683</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Saudi Arabia</td>\n",
|
|
|
|
+ " <td>28475</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Serbia</td>\n",
|
|
|
|
+ " <td>95519</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Sierra Leone</td>\n",
|
|
|
|
+ " <td>41685</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Slovenia</td>\n",
|
|
|
|
+ " <td>47833</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Somalia</td>\n",
|
|
|
|
+ " <td>66332</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>South Korea</td>\n",
|
|
|
|
+ " <td>229805</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Spain</td>\n",
|
|
|
|
+ " <td>355871</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Sweden</td>\n",
|
|
|
|
+ " <td>777801</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Switzerland</td>\n",
|
|
|
|
+ " <td>131534</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Syria</td>\n",
|
|
|
|
+ " <td>123207</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Tajikistan</td>\n",
|
|
|
|
+ " <td>58541</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Tanzania</td>\n",
|
|
|
|
+ " <td>245208</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Thailand</td>\n",
|
|
|
|
+ " <td>413431</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Togo</td>\n",
|
|
|
|
+ " <td>201465</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Turkmenistan</td>\n",
|
|
|
|
+ " <td>47280</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Uganda</td>\n",
|
|
|
|
+ " <td>190927</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Ukraine</td>\n",
|
|
|
|
+ " <td>228561</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>United Kingdom</td>\n",
|
|
|
|
+ " <td>74921</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>United States</td>\n",
|
|
|
|
+ " <td>1005656</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Uzbekistan</td>\n",
|
|
|
|
+ " <td>68969</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Venezuela</td>\n",
|
|
|
|
+ " <td>112740</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Vietnam</td>\n",
|
|
|
|
+ " <td>259546</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Yemen</td>\n",
|
|
|
|
+ " <td>22777</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ "</table>"
|
|
|
|
+ ],
|
|
|
|
+ "text/plain": [
|
|
|
|
+ "[('Afghanistan', 131159),\n",
|
|
|
|
+ " ('Albania', 235171),\n",
|
|
|
|
+ " ('Argentina', 340583),\n",
|
|
|
|
+ " ('Armenia', 77199),\n",
|
|
|
|
+ " ('Australia', 187963),\n",
|
|
|
|
+ " ('Azerbaijan', 159200),\n",
|
|
|
|
+ " ('Bahamas', 148728),\n",
|
|
|
|
+ " ('Bangladesh', 154916),\n",
|
|
|
|
+ " ('Belarus', 25315),\n",
|
|
|
|
+ " ('Benin', 34352),\n",
|
|
|
|
+ " ('Bolivia', 10961),\n",
|
|
|
|
+ " ('Brazil', 488294),\n",
|
|
|
|
+ " ('Burkina Faso', 38329),\n",
|
|
|
|
+ " ('Cameroon', 44091),\n",
|
|
|
|
+ " ('Canada', 125266),\n",
|
|
|
|
+ " ('China', 3587812),\n",
|
|
|
|
+ " ('Colombia', 356547),\n",
|
|
|
|
+ " ('Croatia', 140920),\n",
|
|
|
|
+ " ('Cuba', 196686),\n",
|
|
|
|
+ " ('Cyprus', 577),\n",
|
|
|
|
+ " ('Czech Republic', 94021),\n",
|
|
|
|
+ " ('Denmark', 66339),\n",
|
|
|
|
+ " ('Dominican Republic', 126001),\n",
|
|
|
|
+ " ('Ecuador', 26411),\n",
|
|
|
|
+ " ('Egypt', 59730),\n",
|
|
|
|
+ " ('Estonia', 32547),\n",
|
|
|
|
+ " ('Ethiopia', 276368),\n",
|
|
|
|
+ " ('Finland', 196962),\n",
|
|
|
|
+ " ('France', 871335),\n",
|
|
|
|
+ " ('Georgia', 90044),\n",
|
|
|
|
+ " ('Germany', 74158),\n",
|
|
|
|
+ " ('Greece', 346326),\n",
|
|
|
|
+ " ('Guatemala', 9567),\n",
|
|
|
|
+ " ('Guinea', 49896),\n",
|
|
|
|
+ " ('Guyana', 124443),\n",
|
|
|
|
+ " ('Honduras', 169520),\n",
|
|
|
|
+ " ('Hungary', 80988),\n",
|
|
|
|
+ " ('Indonesia', 2565442),\n",
|
|
|
|
+ " ('Iran', 353566),\n",
|
|
|
|
+ " ('Iraq', 96055),\n",
|
|
|
|
+ " ('Ireland', 89760),\n",
|
|
|
|
+ " ('Israel', 81269),\n",
|
|
|
|
+ " ('Ivory Coast', 142272),\n",
|
|
|
|
+ " ('Japan', 138545),\n",
|
|
|
|
+ " ('Kazakhstan', 121368),\n",
|
|
|
|
+ " ('Kyrgyzstan', 95798),\n",
|
|
|
|
+ " ('Laos', 119385),\n",
|
|
|
|
+ " ('Latvia', 74817),\n",
|
|
|
|
+ " ('Libya', 81214),\n",
|
|
|
|
+ " ('Luxembourg', 70793),\n",
|
|
|
|
+ " ('Macedonia', 46793),\n",
|
|
|
|
+ " ('Madagascar', 92723),\n",
|
|
|
|
+ " ('Malawi', 122046),\n",
|
|
|
|
+ " ('Mali', 85633),\n",
|
|
|
|
+ " ('Mauritius', 42660),\n",
|
|
|
|
+ " ('Mexico', 338072),\n",
|
|
|
|
+ " ('Mongolia', 6955),\n",
|
|
|
|
+ " ('Morocco', 97271),\n",
|
|
|
|
+ " ('Netherlands', 87392),\n",
|
|
|
|
+ " ('New Caledonia', 31718),\n",
|
|
|
|
+ " ('Nicaragua', 54865),\n",
|
|
|
|
+ " ('Nigeria', 150886),\n",
|
|
|
|
+ " ('Norway', 214806),\n",
|
|
|
|
+ " ('Pakistan', 121607),\n",
|
|
|
|
+ " ('Palestinian Territory', 291565),\n",
|
|
|
|
+ " ('Peru', 190533),\n",
|
|
|
|
+ " ('Philippines', 1097122),\n",
|
|
|
|
+ " ('Poland', 1342022),\n",
|
|
|
|
+ " ('Portugal', 559054),\n",
|
|
|
|
+ " ('Russia', 1053683),\n",
|
|
|
|
+ " ('Saudi Arabia', 28475),\n",
|
|
|
|
+ " ('Serbia', 95519),\n",
|
|
|
|
+ " ('Sierra Leone', 41685),\n",
|
|
|
|
+ " ('Slovenia', 47833),\n",
|
|
|
|
+ " ('Somalia', 66332),\n",
|
|
|
|
+ " ('South Korea', 229805),\n",
|
|
|
|
+ " ('Spain', 355871),\n",
|
|
|
|
+ " ('Sweden', 777801),\n",
|
|
|
|
+ " ('Switzerland', 131534),\n",
|
|
|
|
+ " ('Syria', 123207),\n",
|
|
|
|
+ " ('Tajikistan', 58541),\n",
|
|
|
|
+ " ('Tanzania', 245208),\n",
|
|
|
|
+ " ('Thailand', 413431),\n",
|
|
|
|
+ " ('Togo', 201465),\n",
|
|
|
|
+ " ('Turkmenistan', 47280),\n",
|
|
|
|
+ " ('Uganda', 190927),\n",
|
|
|
|
+ " ('Ukraine', 228561),\n",
|
|
|
|
+ " ('United Kingdom', 74921),\n",
|
|
|
|
+ " ('United States', 1005656),\n",
|
|
|
|
+ " ('Uzbekistan', 68969),\n",
|
|
|
|
+ " ('Venezuela', 112740),\n",
|
|
|
|
+ " ('Vietnam', 259546),\n",
|
|
|
|
+ " ('Yemen', 22777)]"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "execution_count": 12,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "output_type": "execute_result"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "source": [
|
|
|
|
+ "%%sql\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "-- Computing the total positive transaction amount for each region using the `GROUP BY` clause.\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "SELECT region_name, SUM(transaction_amount) AS total_transaction_amount\n",
|
|
|
|
+ " FROM sales_details\n",
|
|
|
|
+ " WHERE transaction_amount >= 0\n",
|
|
|
|
+ " GROUP BY region_name;"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "markdown",
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "source": [
|
|
|
|
+ "\n",
|
|
|
|
+ "# Top Three Regions\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": 13,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [
|
|
|
|
+ {
|
|
|
|
+ "name": "stdout",
|
|
|
|
+ "output_type": "stream",
|
|
|
|
+ "text": [
|
|
|
|
+ " * sqlite://\n",
|
|
|
|
+ "Done.\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "data": {
|
|
|
|
+ "text/html": [
|
|
|
|
+ "<table>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <th>region_name</th>\n",
|
|
|
|
+ " <th>total_transaction_amount</th>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>China</td>\n",
|
|
|
|
+ " <td>3587812</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Indonesia</td>\n",
|
|
|
|
+ " <td>2565442</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Poland</td>\n",
|
|
|
|
+ " <td>1342022</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ "</table>"
|
|
|
|
+ ],
|
|
|
|
+ "text/plain": [
|
|
|
|
+ "[('China', 3587812), ('Indonesia', 2565442), ('Poland', 1342022)]"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "execution_count": 13,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "output_type": "execute_result"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "source": [
|
|
|
|
+ "%%sql\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "-- Finding the top three regions in relation to the total positive transaction amount.\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "SELECT region_name, SUM(transaction_amount) AS total_transaction_amount\n",
|
|
|
|
+ " FROM sales_details\n",
|
|
|
|
+ " WHERE transaction_amount >= 0\n",
|
|
|
|
+ " GROUP BY region_name\n",
|
|
|
|
+ " ORDER BY total_transaction_amount DESC\n",
|
|
|
|
+ " LIMIT 3;\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "markdown",
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "source": [
|
|
|
|
+ "# Share of Sales\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": 14,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [
|
|
|
|
+ {
|
|
|
|
+ "name": "stdout",
|
|
|
|
+ "output_type": "stream",
|
|
|
|
+ "text": [
|
|
|
|
+ " * sqlite://\n",
|
|
|
|
+ "Done.\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "data": {
|
|
|
|
+ "text/html": [
|
|
|
|
+ "<table>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <th>region_name</th>\n",
|
|
|
|
+ " <th>total_transaction_amount_props</th>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>China</td>\n",
|
|
|
|
+ " <td>14.909148950077872</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Indonesia</td>\n",
|
|
|
|
+ " <td>10.660691502449314</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Poland</td>\n",
|
|
|
|
+ " <td>5.576770993653348</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ "</table>"
|
|
|
|
+ ],
|
|
|
|
+ "text/plain": [
|
|
|
|
+ "[('China', 14.909148950077872),\n",
|
|
|
|
+ " ('Indonesia', 10.660691502449314),\n",
|
|
|
|
+ " ('Poland', 5.576770993653348)]"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "execution_count": 14,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "output_type": "execute_result"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "source": [
|
|
|
|
+ "%%sql\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "-- Computes the share of sales of the top three regions in relation to the total positive transaction amount.\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "SELECT region_name, SUM(transaction_amount) * 100.0 / 24064499 AS total_transaction_amount_props\n",
|
|
|
|
+ " FROM sales_details\n",
|
|
|
|
+ " WHERE transaction_amount >= 0\n",
|
|
|
|
+ " GROUP BY region_name\n",
|
|
|
|
+ " ORDER BY total_transaction_amount_props DESC\n",
|
|
|
|
+ " LIMIT 3;\n",
|
|
|
|
+ " \n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": 15,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [
|
|
|
|
+ {
|
|
|
|
+ "name": "stdout",
|
|
|
|
+ "output_type": "stream",
|
|
|
|
+ "text": [
|
|
|
|
+ " * sqlite://\n",
|
|
|
|
+ "Done.\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "data": {
|
|
|
|
+ "text/html": [
|
|
|
|
+ "<table>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <th>top_3_share_market</th>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>31.15</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ "</table>"
|
|
|
|
+ ],
|
|
|
|
+ "text/plain": [
|
|
|
|
+ "[(31.15,)]"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "execution_count": 15,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "output_type": "execute_result"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "source": [
|
|
|
|
+ "%%sql\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "-- Summing the share of sales\n",
|
|
|
|
+ "SELECT ROUND(14.909148950077872, 2) + ROUND(10.660691502449314, 2) + ROUND(5.576770993653348, 2) AS top_3_share_market"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "markdown",
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "source": [
|
|
|
|
+ "3. The highest sales in our store come from Asian countries. Our customers are probably many in this part of the world."
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "markdown",
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "source": [
|
|
|
|
+ "\n",
|
|
|
|
+ "# Finding Frequently Bought Products\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": 16,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [
|
|
|
|
+ {
|
|
|
|
+ "name": "stdout",
|
|
|
|
+ "output_type": "stream",
|
|
|
|
+ "text": [
|
|
|
|
+ " * sqlite://\n",
|
|
|
|
+ "Done.\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "data": {
|
|
|
|
+ "text/html": [
|
|
|
|
+ "<table>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <th>region_name</th>\n",
|
|
|
|
+ " <th>product_name</th>\n",
|
|
|
|
+ " <th>num_transactions</th>\n",
|
|
|
|
+ " <th>avg_transaction_amount</th>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Indonesia</td>\n",
|
|
|
|
+ " <td>Beef - Rib Eye Aaa</td>\n",
|
|
|
|
+ " <td>3</td>\n",
|
|
|
|
+ " <td>60284.333333333336</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>China</td>\n",
|
|
|
|
+ " <td>Coke - Diet, 355 Ml</td>\n",
|
|
|
|
+ " <td>2</td>\n",
|
|
|
|
+ " <td>46720.0</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Indonesia</td>\n",
|
|
|
|
+ " <td>Cheese - La Sauvagine</td>\n",
|
|
|
|
+ " <td>2</td>\n",
|
|
|
|
+ " <td>54260.5</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Indonesia</td>\n",
|
|
|
|
+ " <td>Fennel - Seeds</td>\n",
|
|
|
|
+ " <td>2</td>\n",
|
|
|
|
+ " <td>36930.0</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Indonesia</td>\n",
|
|
|
|
+ " <td>Oneshot Automatic Soap System</td>\n",
|
|
|
|
+ " <td>2</td>\n",
|
|
|
|
+ " <td>58257.0</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Indonesia</td>\n",
|
|
|
|
+ " <td>Sprouts - Baby Pea Tendrils</td>\n",
|
|
|
|
+ " <td>2</td>\n",
|
|
|
|
+ " <td>6054.5</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ "</table>"
|
|
|
|
+ ],
|
|
|
|
+ "text/plain": [
|
|
|
|
+ "[('Indonesia', 'Beef - Rib Eye Aaa', 3, 60284.333333333336),\n",
|
|
|
|
+ " ('China', 'Coke - Diet, 355 Ml', 2, 46720.0),\n",
|
|
|
|
+ " ('Indonesia', 'Cheese - La Sauvagine', 2, 54260.5),\n",
|
|
|
|
+ " ('Indonesia', 'Fennel - Seeds', 2, 36930.0),\n",
|
|
|
|
+ " ('Indonesia', 'Oneshot Automatic Soap System', 2, 58257.0),\n",
|
|
|
|
+ " ('Indonesia', 'Sprouts - Baby Pea Tendrils', 2, 6054.5)]"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "execution_count": 16,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "output_type": "execute_result"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "source": [
|
|
|
|
+ "%%sql\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "-- Finding the frequently bought products in China, Indonesia, and Poland.\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "SELECT region_name, product_name, COUNT(*) AS num_transactions, AVG(transaction_amount) AS avg_transaction_amount\n",
|
|
|
|
+ " FROM sales_details\n",
|
|
|
|
+ " WHERE transaction_amount >= 0 AND (region_name = 'China' OR region_name = 'Indonesia' OR region_name = 'Poland')\n",
|
|
|
|
+ " GROUP BY region_name, product_name\n",
|
|
|
|
+ "HAVING COUNT(*) > 1\n",
|
|
|
|
+ " ORDER BY num_transactions DESC, region_name, product_name;"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "markdown",
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "source": [
|
|
|
|
+ "3. For example, in China, we always have to ensure to have the `Coke - Diet, 355 Ml` in stock and in Indonesia, `Beef - Rib Eye Aaa`. Notice that, Poland is not in the top 3 sales because some products are bought very frequently. Maybe the products there are just expensive."
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "markdown",
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "source": [
|
|
|
|
+ "\n",
|
|
|
|
+ "# Finding Promotion Days\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": 17,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [
|
|
|
|
+ {
|
|
|
|
+ "name": "stdout",
|
|
|
|
+ "output_type": "stream",
|
|
|
|
+ "text": [
|
|
|
|
+ " * sqlite://\n",
|
|
|
|
+ "Done.\n"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "data": {
|
|
|
|
+ "text/html": [
|
|
|
|
+ "<table>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <th>region_name</th>\n",
|
|
|
|
+ " <th>time_day_of_week</th>\n",
|
|
|
|
+ " <th>num_transactions</th>\n",
|
|
|
|
+ " <th>total_transaction_amount</th>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>China</td>\n",
|
|
|
|
+ " <td>3</td>\n",
|
|
|
|
+ " <td>14</td>\n",
|
|
|
|
+ " <td>687399</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>China</td>\n",
|
|
|
|
+ " <td>4</td>\n",
|
|
|
|
+ " <td>14</td>\n",
|
|
|
|
+ " <td>578406</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>China</td>\n",
|
|
|
|
+ " <td>5</td>\n",
|
|
|
|
+ " <td>13</td>\n",
|
|
|
|
+ " <td>607495</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>China</td>\n",
|
|
|
|
+ " <td>7</td>\n",
|
|
|
|
+ " <td>14</td>\n",
|
|
|
|
+ " <td>702672</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ " <tr>\n",
|
|
|
|
+ " <td>Indonesia</td>\n",
|
|
|
|
+ " <td>5</td>\n",
|
|
|
|
+ " <td>13</td>\n",
|
|
|
|
+ " <td>717903</td>\n",
|
|
|
|
+ " </tr>\n",
|
|
|
|
+ "</table>"
|
|
|
|
+ ],
|
|
|
|
+ "text/plain": [
|
|
|
|
+ "[('China', 3, 14, 687399),\n",
|
|
|
|
+ " ('China', 4, 14, 578406),\n",
|
|
|
|
+ " ('China', 5, 13, 607495),\n",
|
|
|
|
+ " ('China', 7, 14, 702672),\n",
|
|
|
|
+ " ('Indonesia', 5, 13, 717903)]"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ "execution_count": 17,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "output_type": "execute_result"
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "source": [
|
|
|
|
+ "%%sql\n",
|
|
|
|
+ "\n",
|
|
|
|
+ "-- Finding the days of the week where the number of transactions is greater or equal to `10` in China, Indonesia, and Poland.\n",
|
|
|
|
+ " \n",
|
|
|
|
+ "SELECT region_name, time_day_of_week, COUNT(*) AS num_transactions, SUM( transaction_amount) as total_transaction_amount\n",
|
|
|
|
+ " FROM sales_details\n",
|
|
|
|
+ " WHERE transaction_amount >= 0 AND (region_name = 'China' OR region_name = 'Indonesia' OR region_name = 'Poland' )\n",
|
|
|
|
+ " GROUP BY region_name, time_day_of_week\n",
|
|
|
|
+ "HAVING COUNT(*) >= 10\n",
|
|
|
|
+ " ORDER BY region_name, time_day_of_week;"
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "markdown",
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "source": [
|
|
|
|
+ "2. In China most of the days are interesting while in Indonesia it is only on Friday. "
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ "cell_type": "code",
|
|
|
|
+ "execution_count": null,
|
|
|
|
+ "metadata": {},
|
|
|
|
+ "outputs": [],
|
|
|
|
+ "source": []
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ "metadata": {
|
|
|
|
+ "kernelspec": {
|
|
|
|
+ "display_name": "Python 3",
|
|
|
|
+ "language": "python",
|
|
|
|
+ "name": "python3"
|
|
|
|
+ },
|
|
|
|
+ "language_info": {
|
|
|
|
+ "codemirror_mode": {
|
|
|
|
+ "name": "ipython",
|
|
|
|
+ "version": 3
|
|
|
|
+ },
|
|
|
|
+ "file_extension": ".py",
|
|
|
|
+ "mimetype": "text/x-python",
|
|
|
|
+ "name": "python",
|
|
|
|
+ "nbconvert_exporter": "python",
|
|
|
|
+ "pygments_lexer": "ipython3",
|
|
|
|
+ "version": "3.7.6"
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ "nbformat": 4,
|
|
|
|
+ "nbformat_minor": 2
|
|
|
|
+}
|