{
"cells": [
{
"cell_type": "markdown",
"id": "447211a3-01cb-4354-8e69-86c7312938f2",
"metadata": {},
"source": [
"###
San Jose State University
Department of Applied Data Science
**DATA 201
Database Technologies for Data Analytics**
Spring 2025
Instructor: Ron Mak"
]
},
{
"cell_type": "markdown",
"id": "97d8f499-7007-4641-a65d-604902c229c1",
"metadata": {},
"source": [
"# Database Design Example: Car Dealership"
]
},
{
"cell_type": "markdown",
"id": "f03dc856-4672-4bd9-b2f9-1325161c80c0",
"metadata": {},
"source": [
"#### This example will demonstrate\n",
"- How to design a database that meets a set of requirements.\n",
"- How to formulate queries in a step-by-step manner."
]
},
{
"attachments": {},
"cell_type": "markdown",
"id": "a8ba8a22-c0fd-442c-bf05-8eac3aba3b11",
"metadata": {},
"source": [
"#### **Requirements**: A database for the sales manager of **Golden Lemon Used Car Dealership** to keep track of which salesperson sold which vehicles to which customers during each month:\n",
"- Each salesperson has a name.\n",
"- Each customer has a name and gender.\n",
"- Each car has a car identification number (VIN), company, model, year, and price.\n",
"- Each transaction includes the month when it occurred.\n",
"- A salesperson creates transactions to sell cars.\n",
"- A transaction can include many cars, including none.\n",
"- Each sold car is included in a single transaction.\n",
"- A transaction belongs to only one customer.\n",
"- A customer have many transactions, but at least one.\n",
"- A customer can have transactions with different salespeople. "
]
},
{
"cell_type": "markdown",
"id": "a9ac6fa1-a033-4943-880c-5c3b1c175a9a",
"metadata": {},
"source": [
"## Conceptual: ER diagram"
]
},
{
"attachments": {
"a42d1090-eff9-4201-a3db-0ccd5e66dbad.png": {
"image/png": "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CZAACZAACZAACQRMgKIwYAPw8iRAAiRAAiRAAiRAAiRAAiQQJAGKwiDp89okQAIkQAIkQAIkQAIkQAIkEDABisKADcDLkwAJkAAJkAAJkAAJkAAJkECQBCgKg6TPa5MACZAACZAACZAACZAACZBAwAQoCgM2AC9PAiRAAmEjMHDgQMGyE6n+UN9U+7Ad5zORAAmQAAmQAAn4R4DrFPrHmlciARIgARKwCED4cZ1C3gokQAIkQAIkoA8B9hTqYwuWhARIgARIgARIgARIgARIgAR8J0BR6DtyXpAESIAEoktg586dqvL2a3RJsOYkQAIkQAIkoA8BikJ9bMGSkAAJkECoCUAIXnzxxaqOeKUwDLW5WTkSIAESIAGDCFAUGmQsFpUESIAETCUQLwjtOlAY2iT4SgIkQAIkQALBEqAoDJY/r04CJEACoScQLwgnTJig6mu/UhiG3vysIAmQAAmQgAEEKAoNMBKLSAIkQAKmEkgUhCVLllRVwSuFoalWZblJgARIgATCRoCiMGwWZX1IgARIQBMCqQShXTwKQ5sEX0mABEiABEggWAIUhcHy59VJgARIIJQEMglCu9IUhjYJvpIACZAACZBAcAQoCoNjzyuTAAmQQCgJZCsI7cpTGNok+EoCJEACJEACwRCgKAyGO69KAiRAAqEk4FQQ2hAoDG0SfCUBEiABEiAB/wlQFPrPnFckARIggdAS6N+/v6obJpGB0HOS4oWhnY+T83ksCZAACZAACZBAbgQKYlbK7VSeRQIkQAIk4CeBgoICPy/Ha2VBgD+hWUDiISRAAiRAAtoTKKF9CVlAEiABEiCBQgIUIYUoAn9DkR64CVgAEiABEiABlwgwfNQlkMyGBEiABEiABEiABEiABEiABEwkQFFootVYZhIgARIgARIgARIgARIgARJwiQBFoUsgmQ0JkAAJkAAJkAAJkAAJkAAJmEiAotBEq7HMJEACJEACJEACJEACJEACJOASAYpCl0AyGxIgARIgARIgARIgARIgARIwkQBFoYlWY5lJgARIgARIgARIgARIgARIwCUCFIUugWQ2JEACJEACJEACJEACJEACJGAiAYpCE63GMpMACZAACZAACZAACZAACZCASwQoCl0CyWxIgARIgARIgARIgARIgARIwEQCFIUmWo1lJgESIAESIAESIAESIAESIAGXCFAUugSS2ZAACZAACZAACZAACZAACZCAiQQoCk20GstMAiRAAiRAAiRAAiRAAiRAAi4RoCh0CSSzIQESIAESIAESIAESIAESIAETCVAUmmg1lpkESIAESIAESIAESIAESIAEXCJAUegSSGZDAiRAAiRAAiRAAiRAAiRAAiYSKGFioVlmEiABEiABEiCBcBPYvXu3rF+/XjZs2CBbtmxRfzt27JCdO3cK9iEVK1ZMSpYsKXvttZeULl1aypYtK/vss49UqFBB7Qs3IdaOBEiABNwjUBCzknvZMScSIAESIAGvCBQUFAgf2V7RdZ4v7eGcWfwZK1eulCVLlsiyZctk+fLlsmnTJoHowz1evHhx2XvvvaVUqVJK4JUrV04JPnyGAMR+pD///FOds23bNtm8ebPKA0ISn5EX9iMhLwjGatWqSfXq1eXwww+Xgw46SO3jPxIgARIgARGKQt4FJEACrhJAg27dunWyceNG1UDbunWrbN++XXbt2lXEu1+iRAnVUIN3Hw0+/O23336ChjZTcgIUIcm5BLWV9sie/KJFi2T+/PmCV4g/JHznDz30UCXQINSqVq2afYY5HLlixQolQJcuXSo//fSTEpF4XqEctWrVkgYNGkidOnVyyJmnkAAJkID5BCgKzbcha0ACvhJI592H0EMoF4QewrfKly8vZcqUUd5+27uPRhhCv+DFhzcfYWEQkPDuQ0AiNAwC0g4LQ4PN9u7XqFFDqlSp4mt9dboYRYhO1rC8qpYDA/cz054Evv76a5k5c6ZAgKG3DiGd9evXV8ILQlCn9OOPP8qCBQsEZcZzCM+www47TI477jg56qijdCoqy0ICJEACnhGgKPQMLTMmAfMJxHv3IdzQCLa9+xBoaDh57d3/5ZdfBI02evcpQnT7RlEU/m0ROHo+/fRTmTFjhnLywCHUuHFjOf7442Xffff9+0AD3q1du1YJ2jlz5hTW5YQTTpAWLVoUhq0aUA0WkQRIgAQcEaAodISLB5NAuAnQu6+3fSlC9LIP7SHy+eefy5QpU9RkMJUrV5ZTTjlFGjVqpJeh8izN3LlzleBdtWqVin5AHZs1a5ZnrjydBEiABPQiQFGolz1YGhLwlQC9+77izvtiJomQt956S66//no1bqtdu3bywAMPqLDid955R73HBCPoeXnkkUfkwAMPlKFDhyo+EBn16tWT2267LW9eXmdgkj3cZLF69Wp54403ZOHChSpyoFWrVnLiiSe6eQlt85o+fboSwRgXWbt2bTn33HPV/attgVkwEiABEsiSAEVhlqB4GAmEiYDt3cf4GYzRa9mypRxzzDFhqqKE0btvighBuC/GYo0bN06OOOII6dGjh5x//vly4403qjFl999/vxqvdd1116lJRu6++265+eab5ZlnnpHOnTtLnz591MQfut+QptjDLY4I4X7llVfkjz/+UBOytG3bVg444AC3sjcqHzCYPHmyEsZwalxwwQWCkHomEiABEjCVAEWhqZZjuUnAIQE0Yt58881C7/6pp54amRAoePc/+eQT1WsF7/4555wjFStWdEgw+MNNESGDBg2SWbNmyeuvv66gzZ49W836ePbZZ8sXX3whJ598sppo6N5771Vj0N59910lCjGG67333gsedJYlMMUeWVYn5WGYqRMCf82aNdK0aVO58MILOUvw/2gh2gJCGfc1Zk/u2LGjGmudEiZ3kAAJkICmBCgKNTUMi0UCbhFAmN6rr76qvPt169aVNm3aRDbc6ffffy8Me4N3v3379lKzZk23UHuejykipGfPnuoeu++++4owwUydCBdFjyB6qTFJEcS5LQpRPwhFU5Ip9siVJ2YBHjFihHz33XfSpEkT6dSpU65Zhf483NtjxoyRL7/8UoWVduvWTa2nGPqKs4IkQAKhIUBRGBpTsiIkUJQAQvjGjx9f6N1HeBOWeWD6a8HriRMnCnqwTPLumyJCBg8eLPPmzZORI0eq223x4sWCpUzQcL744otl2rRpSoyPGjVK9UBhnCHCRykK9fl2YvIYRBZAtCP818Se9SBoYjKa559/Xjnh0DOOiAwmEiABEjCBAEWhCVZiGUnAAQGs84fG+LfffkvvfgZuCP1CWBzGHyKsVHfvvimiEEuZnHbaaTJ16lS1xiR6pyEsEH6IXmuEiKIXCmPSsIYdewoz3Kg+7oZwf/zxxwURBuhJx2RATM4JYHkOhE9Xr15djZEtXry480x4BgmQAAn4SICi0EfYvBQJeE0ADRF49xEa2b17d6lUqZLXlwxF/r/99psS0hh3ifGGmHhHx2SKKAS7q666SjE96KCDpGHDhkoMbtiwQbDeG9a63Lx5sxLhQ4YMkWHDhqmxhewpDPaugxB86qmnpEyZMtKvX7/ITiLjlhXwPIHA3rp1q/Tq1cuo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x44dO3QpTpFyIKzym2++UeXDDJjgF9Z09dVXK3H+3HPPhbWK2tULrNE727t3b+3KxgKRAAlEmwBFYbTtz9obRoDe/eAMBu9+tWrVBDbQPWGNSIzNqlKlipplErMv6pR0FoXghKURMKvlkCFD5KabbpKePXuqyYV0YuhGWXA/Q5xMnTpVdO+ld6O+QecBxtOmTZNevXqp3uigy8PrkwAJkEA8AYrCeBp8TwIGEEAjDqF39O77ZyywRk+hCd79Bx98UM4//3wZOHCgPPzww/5BcnClkiVLattTGF+NNm3aqF5DzKCLXsMxY8bE7w7F+8aNG8vll18uH3/8sbz00kuhqJOOlQBbMO7Ro4c0adJExyKyTCRAAhEnQFEY8RuA1TePAMY7IewLHmeMcWPylgC8+9OnT5errrpKjQPy9mq557527Vo1o+S7776rwkU7duyYe2Yen4meQqxhaUIqVqyYEteYbRYiGyG5cBCEKTVv3lwJQ6xdOHz48DBVTYu6gCnWJIQgBGsmEiABEtCRAEWhjlZhmUggA4FGjRqpBsYHH3xA734GVvnsxqQj8O5369ZN0KOia8J9gHDR6tWry0cffSS1atXStaiqXLqHjyaD16pVK5kzZ45abBy9hmETT7h/rr/+elm8eLHccccd8scffyTDwG0OCKxatUqx/P777+W6666TY4891sHZPJQESIAE/CXAdQr95c2rkYCrBDCByPPPPy/HHHOMGvfkauYRzwyN/q+++koJQp3XTrvvvvvkoYceUrNImjKbYYsWLWTQoEFy8sknG3mXzZgxQ/71r38JFkdHuO4RRxxhZD2SFfrPP/+UoUOHyrJly1QY8imnnJLsMG7LQGDKlCkyefJkNcMrIjtKlCiR4QzuJgESIIFgCRS3xp0MDLYIvDoJkECuBDC1f926deW9995T4aQNGjRQyw/kmh/PE/n9999VQ/+3335TYbr169fXEgvK2aVLF1m0aJFqfJ500klaljNZoTA2r1mzZqrXLdl+3bdhghaEAi5dulQgxDHm8IQTTtC92FmVD+GyqAvWMsS6qHPnzpXatWtL2bJlszo/6gfhufHEE08oh9K5554rHTp0EDBlIgESIAHdCbCnUHcLsXwkkAWB3bt3y+OPP07vfhas0h0C7/6kSZNUGGafPn2kePHi6Q4PbN8777wjV155pVoeAz1upqXW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fl0zhunSnDlzHI6YisQRQJT/+Mc/toxh4lqhM4uACIhAchCQ+2hyjJNaKQIJJfDee+9ZcfZbb73Vsh8JbUwAT47InjFjholuxFDTpk1910vMYagFx2+EG4HQK1eunBUNb9Gihbvuuuti2m6mnSJAWYvI9NsTJ06YAKUdVatWdbVr13bVq1ePaRsycvC33nrL1otmZFttEzsCF4s+SwAAGchJREFUrNllLJhGqhABERABEUifgDKF6fPRpyIQegJksEaPHu0own733XeHnkcsATDdjZvYXr16OTKyiYzNmze71atXmwAjW8eUzlq1apnwQgj6KT799FP34YcfOtpMlpGSF5T9aNCggatZs2Zcm8o6yTvuuMP97W9/820mM65AEniyffv2udtvv929+eablmFOYFN0ahEQARHwPQGJQt8PkRooAokjwA0uTn5NmjSRpX6chmHixImOYudPPvlkXG9kWf9H9m3VqlXu2LFjrlChQiZMGzZs6IoWLRqn3kfnNIcOHTJBu379+gt9adSokZkiedNWo3OmK4+CI+9LL71kzrxXfprYd379618bg1/84hfWELLTy5Ytc2PHjnUbN260hxFMB2ZGwPPPP28PAthw4cKFbvjw4TZVmPIazz33nKMO55gxY+w4XK81atRwjz/+uL320z88zKLf/FaIgAiIgAikTSBH2h/pExEQgbATwASldOnSEoRxvBC6detmzLlRj0dwQ491/6BBg9y//vUvy6z84Q9/cJRToOB6sglCmF199dXWdvpAX8gW0bfBgwdbX1euXBkztCkpKZaljNkJsnFgpta+8sorF47A39dff70ZASEE27dv75YvX25rPu+//37bjvWh/fv3d/369XOsKyaYOUDw0GjIkCEmEH/+85/be377h4wxmWSFCIiACIhA+gS0pjB9PvpUBEJLYNasWbZ+a9SoUaFlkKiOk9no27evYwxiMWX3q6++cvPnz7fi8azHu+WWW1zjxo0T1d2Yn7du3bqOHwJBuOTbGpvVqlWzDBJZr2gFbIsXLx6tw0X1OFxLiH/WYn7nO99x//jHPyyriSFOpUqVXJ8+fex8CGnWh3rb4TjcrFkzM/6pUqWKZZO9hlFaxBOJ3nt++s1YHDx40E9NUltEQAREwJcEJAp9OSxqlAgklsCZM2fc1KlTHdkCvzo8JpZQbM8Oc+qrMQZ3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n8CMGTPckiVLrOxK06ZNo38CHVEEREAEREAEEkhAojCB8HVqERCB9Ans27fPap5Rx46pkjgk4rxJ4HzIerpIlvrnzp2zTGRalvq4LJ4/fz7pLfXXrl3rJk2a5OrWreu6d++ePlh9mikCEyZMsPqSXbp0cfXr18/UvtpYBERABERABJKBgERhMoyS2igCIpAqgexY6jNdNWi1FCkOP27cOCsd0KtXr9CWA0n1YsnCmxgHjR071mry9ejRw0WrpEgWmqJdREAEREAERCCmBCQKY4pXBxcBERCB+BLA0GfMmDGO7ColE3BCVWSeAFNF582b58qXL29rCHPlypX5g2gPERABERABEUgSAhKFSTJQaqYIiIAIZIbA4sWL3VtvvWXZwq5du1o5kMzsH9Ztv/jiCzd58mSrtdmmTRvXsmXLsKJQv0VABERABEJEQKIwRIOtroqACISLALX0EDjbt293derUMZMUDHwUVxJgKvK0adNs7WC1atVc586dbZ3plVvqHREQAREQAREIHgGJwuCNqXokAiIgApcQoOzH9OnT3aFDh6yUwt133x249ZSXdDgTL5huO3v2bEdpj6uvvtrcW3G6VYiACIiACIhAmAhIFIZptNVXERCBUBPYuXOnCaADBw646tWru3bt2oXWjGb//v1u/vz5lkUtXry469Chg4xkQv3tUOdFQAREINwEJArDPf7qvQiIQAgJIAoXLFhggqhgwYJW37BJkyahILFy5UqHiQy1MKtWreratm3rSpQoEYq+q5MiIAIiIAIikBYBicK0yOh9ERABEQgBAUTS0qVL3bFjx8yMBrdSah0GKZgaumzZMkeJiUKFCpkja1hEcJDGUX0RAREQARGIHQGJwtix1ZFFQAREIGkIsLYO4bRq1SoTiIinm266yTVo0MDW2iVNR75p6MGDB92aNWvchg0bLvSFfjRv3typtEQyjaTaKgIiIAIiEC8CEoXxIq3ziIAIiEASEdi8ebNbvXq1w6Tm7NmzrkiRIq5mzZquVq1aVrvPT12hjZs2bXJbtmxxR44ccblz53blypUzQUt7FSIgAiIgAiIgAukTkChMn48+FQEREAER+IbAtm3bTHh9/PHHth6P0hYFChQw8VWxYkWHY+d1110XU1Z79uwxkfrvf//bpaSkuBMnTtj5aAfrA2vXrm0GOjFthA4uAiIgAiIgAgEkIFEYwEFVl0RABEQgHgT27dvnEGi7du1yu3fvNpF25swZO3XOnDldnjx5XL58+SzLiKEN4o3XvM/nxLlz5ywTefr0adsfAxiyfbymziL1A8+fP281A9m/TJkyJkARoqVKlbJj6B8REAEREAEREIHsEZAozB4/7S0CIiACIpAGAQQdAu/o0aMm+E6dOmVCj+mofEbkyJHDpnsiFPPnz2/CsXDhwiYk+UwhAiIgAiIgAiIQewIShbFnrDOIgAiIgAiIgAiIgAiIgAiIgG8J6DGsb4dGDRMBERABERABERABERABERCB2BOQKIw9Y51BBERABERABERABERABERABHxLQKLQt0OjhomACIiACIiACIiACIiACIhA7AlIFMaesc4gAiIgAiIgAiIgAiIgAiIgAr4lIFHo26FRw0RABERABERABERABERABEQg9gQkCmPPWGcQAREQAREQAREQAREQAREQAd8SkCj07dCoYSIgAiIgAiIgAiIgAiIgAiIQewIShbFnrDOIgAiIgAiIgAiIgAiIgAiIgG8JSBT6dmjUMBEQAREQAREQAREQAREQARGIPQGJwtgz1hlEQAREQAREQAREQAREQAREwLcE/guD9Xu5g47+dQAAAABJRU5ErkJggg=="
}
},
"cell_type": "markdown",
"id": "5df76ba1-ec74-431b-837a-e6563e025c88",
"metadata": {},
"source": [
""
]
},
{
"cell_type": "markdown",
"id": "87b9d2f0-6543-405e-a277-9d6d63bbedb7",
"metadata": {},
"source": [
"## Logical: Relational schema"
]
},
{
"attachments": {
"5ade2acf-f3b5-43e6-b832-571edb930716.png": {
"image/png": "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+l27dkmePHl8s7Qi0zrW6jYCiV1Xbusr+0MC0SJAy060SPM4cUugefPmlyg6/p3BDC/coPxfadKkkSJFigiGvvzX//DDD/67cpkESIAESCAKBGjZiQJkHsKdBPgE7s7zmtq94nWV2meAx3cjAVp23HhW2ScSIAESIAESIAEfASo7PhRcIAESIAESIAEScCMBKjtuPKvsk2sJwPHZzg5zbSfZMRIgARJIYQJUdlIYKKsjgZQm8NNPP8knn3yi1a5cuVJuvfXWlD4E6yMBEiABVxPwrLLTq1cveemll1x9ctk5dxBYt26djBkzxh2dYS9IgARIIBUIeFbZSQXWPKSLCdxzzz0yceJEqVKlilSuXFmWLl0qTz75pOTLl08aNWokSB4K2bdvnzRs2FCyZMmigQdRDrJx40bp0KGDDBkyRAoXLiwVK1aU77//XpOJ9u7dW7755ht5+umntSyGsvr16yeFChWS2267TTZv3qzr+UYCJEACJBCcgGuUnWHDhknZsmXlpptukjfffNPX20WLFgmSQCJfUevWreXw4cO+bXbh5MmT0rlzZ8mfP79mxl69erXdJMHqXb58uTzzzDPy3HPP6T5169bVOCx2p3HjxmkiyNKlS8uIESPsak0IOXv2bM2CvWnTJvn6668FN0kkjGzWrJkcP35cyyb1hug7ABdSjQDOJ87722+/LRUqVJC77rpLgwkih9aPP/4o06ZN07YhZk+5cuX0eunTp480btxYkDsL1+DkyZNl79698umnn0rBggUF26H4dO3aVRUja4lErJ4jR47IvHnzpHjx4gJliEICJEACJJAIAfOUGPeydetWxyg6zu+//+4YBcIxT9OOucE4Fy5ccMqUKeOYm4Jz4MABx4Txd8wNRPv74osvOmYoS5ex/sEHH3TMTcSZOnWqky1bNsfcTJxQ9c6dO9cxQeOcAQMGOLt373Yee+wxrRuVzZkzxzFP3I65YTnmad0pWbKkY25iehxz43JKlSrljBw50vnzzz+dm2++2fniiy+cn3/+2TE3PWfgwIFarmbNmg7ad/ToUWfGjBlO9uzZHaMAOebp3klISHDMzU/799BDDznGSqD78C36BMzPynfQvHnz6jnHimXLljnp0qVzTpw4oduNYqzn0/je6HXzxx9/+Pa74447nHfffVfP7fXXX++cO3dOt61YscIpVqyYLpvc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"
}
},
"cell_type": "markdown",
"id": "6451625d-8f62-471e-a373-83463e4babfb",
"metadata": {},
"source": [
""
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "1c607bf6-62e0-4baf-bd5e-20ecc5e38433",
"metadata": {},
"outputs": [],
"source": [
"from data201 import db_connection, df_query"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "ae2f6068-a10b-4ecb-974e-04f230354aa9",
"metadata": {},
"outputs": [],
"source": [
"conn = db_connection(config_file = 'CarDealership.ini')\n",
"cursor = conn.cursor()"
]
},
{
"cell_type": "markdown",
"id": "d48f7464-487d-4a24-9ba5-ba48203b2d24",
"metadata": {},
"source": [
"## Queries"
]
},
{
"cell_type": "markdown",
"id": "53045844-5dda-408b-b739-d2974654e9ed",
"metadata": {},
"source": [
"### **1.** In the month of September, which salesperson sold the **most** cars and how many?\n",
"#### Why is the following query incorrect?"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "05aaff47-80c0-4d01-9756-9928e8be0a9d",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Top Sept sales person | \n",
" Cars sold | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Leslie | \n",
" 4 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Top Sept sales person Cars sold\n",
"0 Leslie 4"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_query(conn,\n",
" \"\"\"\n",
" SELECT sp.name AS \"Top Sept sales person\", \n",
" count(sp.name) AS \"Cars sold\" \n",
" FROM salesperson sp\n",
" JOIN transaction t\n",
" ON t.salesperson_id = sp.id\n",
" AND t.month = 9\n",
" GROUP BY sp.name\n",
" ORDER BY count(sp.name) DESC\n",
" LIMIT 1\n",
" \"\"\"\n",
")"
]
},
{
"cell_type": "markdown",
"id": "acd63872-5466-4560-a240-e2652dc9d925",
"metadata": {},
"source": [
"#### Before we can tell who has sold the most cars, we must know **how many cars** each salesperson sold in September."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "3d2170ca-43ed-4d45-b796-7fe440aab910",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Sales person | \n",
" Cars sold in Sept | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Jing | \n",
" 2 | \n",
"
\n",
" \n",
" 1 | \n",
" Leslie | \n",
" 4 | \n",
"
\n",
" \n",
" 2 | \n",
" Shaila | \n",
" 4 | \n",
"
\n",
" \n",
" 3 | \n",
" Steve | \n",
" 1 | \n",
"
\n",
" \n",
" 4 | \n",
" Vijay | \n",
" 1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Sales person Cars sold in Sept\n",
"0 Jing 2\n",
"1 Leslie 4\n",
"2 Shaila 4\n",
"3 Steve 1\n",
"4 Vijay 1"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_query(conn, \n",
" \"\"\"\n",
" SELECT sp.name AS \"Sales person\",\n",
" COUNT(sp.name) AS \"Cars sold in Sept\"\n",
" FROM salesperson sp\n",
" JOIN transaction t\n",
" ON t.salesperson_id = sp.id\n",
" JOIN car\n",
" ON car.transaction_id = t.id\n",
" WHERE t.month = 9\n",
" GROUP BY sp.name\n",
" ORDER BY sp.name\n",
" \"\"\"\n",
")"
]
},
{
"cell_type": "markdown",
"id": "d0d9e703-3ed2-46a7-85f5-db47cb41b755",
"metadata": {},
"source": [
"#### OK. More than one salesperson can tie selling the most cars. \n",
"#### Let's make the above query a view."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "0d88b946-d64a-42b7-bcb5-3dfce6ecd8a1",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" sales_person | \n",
" sept_count | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Jing | \n",
" 2 | \n",
"
\n",
" \n",
" 1 | \n",
" Leslie | \n",
" 4 | \n",
"
\n",
" \n",
" 2 | \n",
" Shaila | \n",
" 4 | \n",
"
\n",
" \n",
" 3 | \n",
" Steve | \n",
" 1 | \n",
"
\n",
" \n",
" 4 | \n",
" Vijay | \n",
" 1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" sales_person sept_count\n",
"0 Jing 2\n",
"1 Leslie 4\n",
"2 Shaila 4\n",
"3 Steve 1\n",
"4 Vijay 1"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cursor.execute('DROP VIEW IF EXISTS sept_sales')\n",
"\n",
"cursor.execute( \n",
" \"\"\"\n",
" CREATE VIEW sept_sales AS\n",
" SELECT sp.name AS sales_person,\n",
" COUNT(sp.name) AS sept_count\n",
" FROM salesperson sp\n",
" JOIN transaction t\n",
" ON t.salesperson_id = sp.id\n",
" JOIN car\n",
" ON car.transaction_id = t.id\n",
" WHERE t.month = 9\n",
" GROUP BY sp.name\n",
" ORDER BY sp.name\n",
" \"\"\"\n",
")\n",
"\n",
"df_query(conn, 'SELECT * FROM sept_sales')"
]
},
{
"cell_type": "markdown",
"id": "f132ff67-e8d4-46e3-8e45-5473c96a194a",
"metadata": {},
"source": [
"#### The maximum number of vehicles sold in September."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "ab1c4f9b-2c2b-4a33-a9fe-66bbf471e559",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" MAX(sept_count) | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 4 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" MAX(sept_count)\n",
"0 4"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_query(conn, \n",
" \"\"\" \n",
" SELECT MAX(sept_count) \n",
" FROM sept_sales\n",
" \"\"\"\n",
")"
]
},
{
"cell_type": "markdown",
"id": "906ed413-80e4-44c5-90b3-d3172553854e",
"metadata": {},
"source": [
"#### Who sold the most vehicles in September and how many?"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "0d61f1c6-41ee-4fe7-ace0-dc7e1243049c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Top Sept sales persons | \n",
" Sept cars sold | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Leslie | \n",
" 4 | \n",
"
\n",
" \n",
" 1 | \n",
" Shaila | \n",
" 4 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Top Sept sales persons Sept cars sold\n",
"0 Leslie 4\n",
"1 Shaila 4"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_query(conn, \n",
" \"\"\" \n",
" SELECT sales_person AS \"Top Sept sales persons\",\n",
" sept_count AS \"Sept cars sold\"\n",
" FROM sept_sales\n",
" WHERE sept_count = (\n",
" SELECT MAX(sept_count)\n",
" FROM sept_sales)\n",
" ORDER BY sales_person\n",
" \"\"\"\n",
")"
]
},
{
"cell_type": "markdown",
"id": "de26732e-2bc5-4e43-bcb3-34d1b7667dbc",
"metadata": {},
"source": [
"### **2.** Which salespersons in September sold **fewer than the average** number of cars in September? \n",
"\n",
"#### First, what is the average sales in September?"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "a762c6c8-d6d3-4f5a-ab02-ec762e839272",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Average Sept sales | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2.4 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Average Sept sales\n",
"0 2.4"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_query(conn, \n",
" \"\"\" \n",
" SELECT AVG(sept_count) AS \"Average Sept sales\"\n",
" FROM sept_sales\n",
" \"\"\"\n",
")"
]
},
{
"cell_type": "markdown",
"id": "846aa29d-ada7-42d8-b92f-e266b7de4d89",
"metadata": {},
"source": [
"#### Here are September's poor performers."
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "5f37ecfb-e76c-49ff-bea8-329cdb6cb4c5",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Poor Sept performers | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Jing | \n",
"
\n",
" \n",
" 1 | \n",
" Steve | \n",
"
\n",
" \n",
" 2 | \n",
" Vijay | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Poor Sept performers\n",
"0 Jing\n",
"1 Steve\n",
"2 Vijay"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_query(conn, \n",
" \"\"\" \n",
" SELECT sales_person AS \"Poor Sept performers\" \n",
" FROM sept_sales\n",
" WHERE sept_count < (\n",
" SELECT AVG(sept_count)\n",
" FROM sept_sales)\n",
" ORDER BY sales_person\n",
" \"\"\"\n",
")"
]
},
{
"attachments": {},
"cell_type": "markdown",
"id": "de0bbf96-c760-494a-9cf8-f44bb566b42d",
"metadata": {},
"source": [
"### **3.** In September, what is the **number and average price** of cars sold in each group consisting of **a salesperson**, a **car company**, and a **customer gender**? Only consider salespersons who **sold two or more cars** in the group.\n",
"\n",
"#### First, let's see who sold what of each car company and model to each customer gender."
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "191bd3a4-81eb-4cff-8e15-843ada2f6695",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Sales person | \n",
" Transaction ID | \n",
" Car company | \n",
" Car model | \n",
" Customer gender | \n",
" Car price | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Jing | \n",
" T0007 | \n",
" Ford | \n",
" Fiesta | \n",
" m | \n",
" $10,000.00 | \n",
"
\n",
" \n",
" 1 | \n",
" Jing | \n",
" T0007 | \n",
" Ford | \n",
" Focus | \n",
" m | \n",
" $700.00 | \n",
"
\n",
" \n",
" 2 | \n",
" Leslie | \n",
" T0001 | \n",
" Honda | \n",
" Accord | \n",
" f | \n",
" $2,200.00 | \n",
"
\n",
" \n",
" 3 | \n",
" Leslie | \n",
" T0011 | \n",
" Volvo | \n",
" 240 DL | \n",
" f | \n",
" $1,000.00 | \n",
"
\n",
" \n",
" 4 | \n",
" Leslie | \n",
" T0001 | \n",
" Volvo | \n",
" 850 | \n",
" f | \n",
" $5,000.00 | \n",
"
\n",
" \n",
" 5 | \n",
" Leslie | \n",
" T0004 | \n",
" Volvo | \n",
" X90 | \n",
" f | \n",
" $11,000.00 | \n",
"
\n",
" \n",
" 6 | \n",
" Shaila | \n",
" T0002 | \n",
" Chevy | \n",
" Nova | \n",
" m | \n",
" $1,000.00 | \n",
"
\n",
" \n",
" 7 | \n",
" Shaila | \n",
" T0010 | \n",
" Honda | \n",
" Civic | \n",
" m | \n",
" $5,000.00 | \n",
"
\n",
" \n",
" 8 | \n",
" Shaila | \n",
" T0002 | \n",
" Toyota | \n",
" Prius | \n",
" m | \n",
" $15,000.00 | \n",
"
\n",
" \n",
" 9 | \n",
" Shaila | \n",
" T0010 | \n",
" Volkswagen | \n",
" Beetle | \n",
" m | \n",
" $200.00 | \n",
"
\n",
" \n",
" 10 | \n",
" Steve | \n",
" T0005 | \n",
" Ford | \n",
" Taurus | \n",
" m | \n",
" $10,000.00 | \n",
"
\n",
" \n",
" 11 | \n",
" Vijay | \n",
" T0006 | \n",
" Volvo | \n",
" S60 | \n",
" m | \n",
" $16,000.00 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Sales person Transaction ID Car company Car model Customer gender \\\n",
"0 Jing T0007 Ford Fiesta m \n",
"1 Jing T0007 Ford Focus m \n",
"2 Leslie T0001 Honda Accord f \n",
"3 Leslie T0011 Volvo 240 DL f \n",
"4 Leslie T0001 Volvo 850 f \n",
"5 Leslie T0004 Volvo X90 f \n",
"6 Shaila T0002 Chevy Nova m \n",
"7 Shaila T0010 Honda Civic m \n",
"8 Shaila T0002 Toyota Prius m \n",
"9 Shaila T0010 Volkswagen Beetle m \n",
"10 Steve T0005 Ford Taurus m \n",
"11 Vijay T0006 Volvo S60 m \n",
"\n",
" Car price \n",
"0 $10,000.00 \n",
"1 $700.00 \n",
"2 $2,200.00 \n",
"3 $1,000.00 \n",
"4 $5,000.00 \n",
"5 $11,000.00 \n",
"6 $1,000.00 \n",
"7 $5,000.00 \n",
"8 $15,000.00 \n",
"9 $200.00 \n",
"10 $10,000.00 \n",
"11 $16,000.00 "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_query(conn, \n",
" \"\"\" \n",
" SELECT sp.name AS \"Sales person\", \n",
" t.id AS \"Transaction ID\",\n",
" car.company AS \"Car company\", \n",
" car.model AS \"Car model\", \n",
" cust.gender AS \"Customer gender\", \n",
" CONCAT('$', FORMAT(car.price, 2)) AS \"Car price\"\n",
" FROM salesperson sp\n",
" JOIN transaction t\n",
" ON t.salesperson_id = sp.id\n",
" JOIN car\n",
" ON car.transaction_id = t.id\n",
" JOIN customer cust\n",
" ON cust.id = t.customer_id\n",
" WHERE t.month = 9\n",
" ORDER BY sp.name, car.company, car.model, cust.gender\n",
" \"\"\"\n",
")"
]
},
{
"cell_type": "markdown",
"id": "be14d091-b67f-4cf7-b4cb-0d23f5468175",
"metadata": {},
"source": [
"#### Now group the results by salesperson, car company, and customer gender, and compute the average car price in each group."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "d7b8827c-97d9-49dc-9b94-03ee51c29e09",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Sales person | \n",
" Car company | \n",
" Customer gender | \n",
" Cars sold | \n",
" Avg car price | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Jing | \n",
" Ford | \n",
" m | \n",
" 2 | \n",
" $5,350.00 | \n",
"
\n",
" \n",
" 1 | \n",
" Leslie | \n",
" Honda | \n",
" f | \n",
" 1 | \n",
" $2,200.00 | \n",
"
\n",
" \n",
" 2 | \n",
" Leslie | \n",
" Volvo | \n",
" f | \n",
" 3 | \n",
" $5,666.67 | \n",
"
\n",
" \n",
" 3 | \n",
" Shaila | \n",
" Chevy | \n",
" m | \n",
" 1 | \n",
" $1,000.00 | \n",
"
\n",
" \n",
" 4 | \n",
" Shaila | \n",
" Honda | \n",
" m | \n",
" 1 | \n",
" $5,000.00 | \n",
"
\n",
" \n",
" 5 | \n",
" Shaila | \n",
" Toyota | \n",
" m | \n",
" 1 | \n",
" $15,000.00 | \n",
"
\n",
" \n",
" 6 | \n",
" Shaila | \n",
" Volkswagen | \n",
" m | \n",
" 1 | \n",
" $200.00 | \n",
"
\n",
" \n",
" 7 | \n",
" Steve | \n",
" Ford | \n",
" m | \n",
" 1 | \n",
" $10,000.00 | \n",
"
\n",
" \n",
" 8 | \n",
" Vijay | \n",
" Volvo | \n",
" m | \n",
" 1 | \n",
" $16,000.00 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Sales person Car company Customer gender Cars sold Avg car price\n",
"0 Jing Ford m 2 $5,350.00\n",
"1 Leslie Honda f 1 $2,200.00\n",
"2 Leslie Volvo f 3 $5,666.67\n",
"3 Shaila Chevy m 1 $1,000.00\n",
"4 Shaila Honda m 1 $5,000.00\n",
"5 Shaila Toyota m 1 $15,000.00\n",
"6 Shaila Volkswagen m 1 $200.00\n",
"7 Steve Ford m 1 $10,000.00\n",
"8 Vijay Volvo m 1 $16,000.00"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_query(conn,\n",
" \"\"\" \n",
" SELECT sp.name AS \"Sales person\", \n",
" car.company AS \"Car company\", \n",
" cust.gender AS \"Customer gender\", \n",
" COUNT(car.company) AS \"Cars sold\", \n",
" CONCAT('$', FORMAT(AVG(car.price), 2)) AS \"Avg car price\"\n",
" FROM salesperson sp\n",
" JOIN transaction t\n",
" ON t.salesperson_id = sp.id\n",
" JOIN car\n",
" ON car.transaction_id = t.id\n",
" JOIN customer cust\n",
" ON cust.id = t.customer_id\n",
" WHERE t.month = 9\n",
" GROUP BY sp.name, car.company, cust.gender\n",
" ORDER BY sp.name, car.company, cust.gender\n",
" \"\"\"\n",
")"
]
},
{
"cell_type": "markdown",
"id": "152130aa-a391-4294-b8c7-e41e8444afb5",
"metadata": {},
"source": [
"#### We only want to see the groups where at least 2 cars were sold."
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "b9697dec-1b9c-4e71-919c-20f1768953e5",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Sales person | \n",
" Car company | \n",
" Customer gender | \n",
" Cars sold >= 2 | \n",
" Avg car price | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Jing | \n",
" Ford | \n",
" m | \n",
" 2 | \n",
" $5,350.00 | \n",
"
\n",
" \n",
" 1 | \n",
" Leslie | \n",
" Volvo | \n",
" f | \n",
" 3 | \n",
" $5,666.67 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Sales person Car company Customer gender Cars sold >= 2 Avg car price\n",
"0 Jing Ford m 2 $5,350.00\n",
"1 Leslie Volvo f 3 $5,666.67"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_query(conn, \n",
" \"\"\" \n",
" SELECT sp.name AS \"Sales person\", \n",
" car.company AS \"Car company\", \n",
" cust.gender AS \"Customer gender\", \n",
" COUNT(car.company) AS \"Cars sold >= 2\", \n",
" CONCAT('$', FORMAT(AVG(car.price), 2)) AS \"Avg car price\"\n",
" FROM salesperson sp\n",
" JOIN transaction t\n",
" ON t.salesperson_id = sp.id\n",
" JOIN car\n",
" ON car.transaction_id = t.id\n",
" JOIN customer cust\n",
" ON cust.id = t.customer_id\n",
" WHERE t.month = 9\n",
" GROUP BY sp.name, car.company, cust.gender\n",
" HAVING COUNT(car.company) >= 2\n",
" ORDER BY sp.name, car.company, cust.gender\n",
" \"\"\"\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "1e9260eb-c269-47df-9cc6-157bd6c7c257",
"metadata": {},
"outputs": [],
"source": [
"cursor.close()\n",
"conn.close()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "51f963fd-6a28-4435-a6b9-ac4fecdb2776",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.12.4"
}
},
"nbformat": 4,
"nbformat_minor": 5
}