Last active
January 25, 2019 20:35
-
-
Save genhernandez/d0e11cda2bb468884379cfacaf142865 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "execution_count": 92, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "import os\n", | |
| "import json\n", | |
| "from sqlalchemy import create_engine\n", | |
| "import pandas as pd\n", | |
| "dwh_creds = os.getenv('DWH_CREDS')\n", | |
| "mb_creds = os.getenv('MB_CREDS')\n", | |
| "dwh_engine = create_engine(dwh_creds)\n", | |
| "mb_engine = create_engine(mb_creds)\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 112, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "open_interval_event_ids_query = \"\"\"\n", | |
| "select distinct id\n", | |
| "from locations\n", | |
| "where upper_inf(time_range) AND lower(time_range) < ('1547482980'::int::abstime::timestamp at time zone 'UTC')\n", | |
| "and org_id = 583 and provider_id = '63f13c48-34ff-49d2-aca7-cf6a5b6171c3'\n", | |
| "\"\"\"\n", | |
| "\n", | |
| "open_interval_event_ids = pd.read_sql(open_interval_event_ids_query, con=mb_engine)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 113, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "361" | |
| ] | |
| }, | |
| "execution_count": 113, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "len(open_interval_event_ids.id)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 114, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "open_interval_event_ids_str = \",\".join([f\"'{s}'\" for s in open_interval_event_ids.id])\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 126, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "n_devices_with_open_interval_before_timestamp_query = f\"\"\"\n", | |
| "select n_open_interval_events, count(*) as n_devices from\n", | |
| "(select device_id, count(*) as n_open_interval_events from events \n", | |
| "where id in ({open_interval_event_ids_str})\n", | |
| "group by device_id) as b\n", | |
| "group by n_open_interval_events\n", | |
| "\"\"\"\n", | |
| "\n", | |
| "n_devices_res = pd.read_sql(n_devices_with_open_interval_before_timestamp_query, con=dwh_engine)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 136, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "355" | |
| ] | |
| }, | |
| "execution_count": 136, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "n_devices_res\n", | |
| "n_devices_res.n_devices.sum()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 128, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "device_ids_with_open_interval_before_timestamp_query = f\"\"\"\n", | |
| "select distinct device_id\n", | |
| "from events\n", | |
| "where id in ({open_interval_event_ids_str})\n", | |
| "\"\"\"\n", | |
| "\n", | |
| "device_ids_res = pd.read_sql(device_ids_with_open_interval_before_timestamp_query, con=dwh_engine)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 129, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>device_id</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>0</th>\n", | |
| " <td>090858dd-2d3e-4145-bb8d-eff9ab35bc35</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <td>09760f7a-2c69-4810-b95f-e9093ece6d46</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2</th>\n", | |
| " <td>0998a5cd-0a16-43c9-bca5-7cb84628b03c</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>3</th>\n", | |
| " <td>0a187031-ae16-470e-b9e4-13ff202e0891</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>4</th>\n", | |
| " <td>0a51908c-63df-4d3c-ba9e-351bdc32997b</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>5</th>\n", | |
| " <td>0ab83bdf-c093-43ec-be2f-135617627c29</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>6</th>\n", | |
| " <td>0b5853da-f9b3-4317-b5dc-6a6d6162edb7</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>7</th>\n", | |
| " <td>0c945287-eb78-4d04-b311-69ea9bba1a37</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>8</th>\n", | |
| " <td>0cfbb775-86b9-4591-b098-630f512a17af</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>9</th>\n", | |
| " <td>0dcec5bc-b80c-46c3-b192-c19edcf7b7d8</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>10</th>\n", | |
| " <td>0e02082a-4804-45b3-bf01-e0f4cd8a33d2</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>11</th>\n", | |
| " <td>106b7436-c33e-491e-b67f-3ad0155c6930</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>12</th>\n", | |
| " <td>10e4ae2c-eaa9-4ccc-ba54-2caeaa961d21</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>13</th>\n", | |
| " <td>11356930-a9e4-4875-bf3c-8b48de3a7ca7</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>14</th>\n", | |
| " <td>11e23e21-72ee-43f4-b0aa-48376da4eb82</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>15</th>\n", | |
| " <td>126f2109-df1d-46c7-be36-940a38ab35ec</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>16</th>\n", | |
| " <td>126fd3a0-4b7e-49e4-b1f1-6f12da4ee88b</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>17</th>\n", | |
| " <td>1408546d-8222-42c5-b8f9-64e112132632</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>18</th>\n", | |
| " <td>14cd55c4-3300-4e72-b66b-70b71f855512</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>19</th>\n", | |
| " <td>14e6028f-bd5d-45f4-bceb-dd495bd605aa</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>20</th>\n", | |
| " <td>14f57522-a839-46ee-b7f5-0d81e739dfb7</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>21</th>\n", | |
| " <td>15db41eb-eba6-43c3-bc67-33d653a79735</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>22</th>\n", | |
| " <td>1654a875-7b05-4c85-b038-71fcc4d70c0e</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>23</th>\n", | |
| " <td>1682fc0a-05a9-4990-b8da-ee03da769d94</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>24</th>\n", | |
| " <td>16eb0fc7-fc9b-4ba3-b9d2-c450a0806b75</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>25</th>\n", | |
| " <td>172315a5-5ff7-4548-b844-a4e43d9f8ba9</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>26</th>\n", | |
| " <td>17800c42-a223-430e-bbec-b73f729a210f</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>27</th>\n", | |
| " <td>17ae9674-499f-4507-b3c0-74b3c86c09a3</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>28</th>\n", | |
| " <td>17e4ff01-b6cb-46b9-b327-5b33f7eb3bd9</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>29</th>\n", | |
| " <td>1806e577-5873-4c3c-bd29-3d10a4b42c17</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>...</th>\n", | |
| " <td>...</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>325</th>\n", | |
| " <td>8c8c1e15-4da7-444b-b5fa-0f4510a972b8</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>326</th>\n", | |
| " <td>8d4e34c2-6187-499f-b8a5-f10ad85a875f</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>327</th>\n", | |
| " <td>8d7928d2-535c-4849-b4e0-ab34a1e5f972</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>328</th>\n", | |
| " <td>8d9d7896-691c-4177-b538-1f1bbc419cc0</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>329</th>\n", | |
| " <td>8dd41e26-5bf3-4583-bc38-c97a83e31b66</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>330</th>\n", | |
| " <td>8e045286-c3bd-4b88-ba3d-29137a2fb561</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>331</th>\n", | |
| " <td>8e3bf2cd-2e90-49b1-b9f2-263d16bd7f3d</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>332</th>\n", | |
| " <td>8e890e7c-44b3-4d0b-bfc1-76bbff63d572</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>333</th>\n", | |
| " <td>8e9c9e2c-9718-4de8-b5cc-14bba69aa176</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>334</th>\n", | |
| " <td>8e9ce29b-f6d7-4337-bf36-3f77bd92ceb8</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>335</th>\n", | |
| " <td>8eae4126-4fb5-495e-b32b-b6fe1fedff24</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>336</th>\n", | |
| " <td>8edb9c91-3742-4bbc-ba98-62a49507e47c</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>337</th>\n", | |
| " <td>8ee84b72-e673-43f0-b65c-7f309f30d866</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>338</th>\n", | |
| " <td>8f8a7e99-495a-440a-bebc-e9ada0229e8f</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>339</th>\n", | |
| " <td>8fb241b2-b1db-455e-b02c-27cf4441491f</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>340</th>\n", | |
| " <td>8fb35b9c-3a49-4227-b1f9-91df828ffa46</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>341</th>\n", | |
| " <td>901d7f93-0c92-48eb-b6b0-6ba50bf8ed6e</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>342</th>\n", | |
| " <td>9065c797-f8bf-422c-b88c-59e179cb67fd</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>343</th>\n", | |
| " <td>9073087f-ce99-414e-b592-85b264c5591a</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>344</th>\n", | |
| " <td>9140070d-00bd-439a-bbd2-2c223a1a1ec6</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>345</th>\n", | |
| " <td>9177e007-a0a6-488d-b1a8-c066194cd5a9</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>346</th>\n", | |
| " <td>91cf7e7a-1ca2-4c08-b677-bbee7418a7bc</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>347</th>\n", | |
| " <td>91d794a8-d97d-4922-bbbc-6c3b74cce4d5</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>348</th>\n", | |
| " <td>91e2e0af-9ec8-4f55-bf74-378f0f1c97bc</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>349</th>\n", | |
| " <td>921e01a8-f90b-4f94-b8c7-d9356650b669</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>350</th>\n", | |
| " <td>9224fd4e-b342-4d69-b9bd-bb684fe32023</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>351</th>\n", | |
| " <td>9240b0c3-3ece-487d-b0e9-e6cdf29215c8</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>352</th>\n", | |
| " <td>92a4c8b8-6ce9-4178-b3d5-99de0a12f875</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>353</th>\n", | |
| " <td>93749de6-3ebc-4af9-b8db-bd4535af1d04</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>354</th>\n", | |
| " <td>93a55c87-52b3-47fa-b315-1fac5a44961b</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "<p>355 rows × 1 columns</p>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " device_id\n", | |
| "0 090858dd-2d3e-4145-bb8d-eff9ab35bc35\n", | |
| "1 09760f7a-2c69-4810-b95f-e9093ece6d46\n", | |
| "2 0998a5cd-0a16-43c9-bca5-7cb84628b03c\n", | |
| "3 0a187031-ae16-470e-b9e4-13ff202e0891\n", | |
| "4 0a51908c-63df-4d3c-ba9e-351bdc32997b\n", | |
| "5 0ab83bdf-c093-43ec-be2f-135617627c29\n", | |
| "6 0b5853da-f9b3-4317-b5dc-6a6d6162edb7\n", | |
| "7 0c945287-eb78-4d04-b311-69ea9bba1a37\n", | |
| "8 0cfbb775-86b9-4591-b098-630f512a17af\n", | |
| "9 0dcec5bc-b80c-46c3-b192-c19edcf7b7d8\n", | |
| "10 0e02082a-4804-45b3-bf01-e0f4cd8a33d2\n", | |
| "11 106b7436-c33e-491e-b67f-3ad0155c6930\n", | |
| "12 10e4ae2c-eaa9-4ccc-ba54-2caeaa961d21\n", | |
| "13 11356930-a9e4-4875-bf3c-8b48de3a7ca7\n", | |
| "14 11e23e21-72ee-43f4-b0aa-48376da4eb82\n", | |
| "15 126f2109-df1d-46c7-be36-940a38ab35ec\n", | |
| "16 126fd3a0-4b7e-49e4-b1f1-6f12da4ee88b\n", | |
| "17 1408546d-8222-42c5-b8f9-64e112132632\n", | |
| "18 14cd55c4-3300-4e72-b66b-70b71f855512\n", | |
| "19 14e6028f-bd5d-45f4-bceb-dd495bd605aa\n", | |
| "20 14f57522-a839-46ee-b7f5-0d81e739dfb7\n", | |
| "21 15db41eb-eba6-43c3-bc67-33d653a79735\n", | |
| "22 1654a875-7b05-4c85-b038-71fcc4d70c0e\n", | |
| "23 1682fc0a-05a9-4990-b8da-ee03da769d94\n", | |
| "24 16eb0fc7-fc9b-4ba3-b9d2-c450a0806b75\n", | |
| "25 172315a5-5ff7-4548-b844-a4e43d9f8ba9\n", | |
| "26 17800c42-a223-430e-bbec-b73f729a210f\n", | |
| "27 17ae9674-499f-4507-b3c0-74b3c86c09a3\n", | |
| "28 17e4ff01-b6cb-46b9-b327-5b33f7eb3bd9\n", | |
| "29 1806e577-5873-4c3c-bd29-3d10a4b42c17\n", | |
| ".. ...\n", | |
| "325 8c8c1e15-4da7-444b-b5fa-0f4510a972b8\n", | |
| "326 8d4e34c2-6187-499f-b8a5-f10ad85a875f\n", | |
| "327 8d7928d2-535c-4849-b4e0-ab34a1e5f972\n", | |
| "328 8d9d7896-691c-4177-b538-1f1bbc419cc0\n", | |
| "329 8dd41e26-5bf3-4583-bc38-c97a83e31b66\n", | |
| "330 8e045286-c3bd-4b88-ba3d-29137a2fb561\n", | |
| "331 8e3bf2cd-2e90-49b1-b9f2-263d16bd7f3d\n", | |
| "332 8e890e7c-44b3-4d0b-bfc1-76bbff63d572\n", | |
| "333 8e9c9e2c-9718-4de8-b5cc-14bba69aa176\n", | |
| "334 8e9ce29b-f6d7-4337-bf36-3f77bd92ceb8\n", | |
| "335 8eae4126-4fb5-495e-b32b-b6fe1fedff24\n", | |
| "336 8edb9c91-3742-4bbc-ba98-62a49507e47c\n", | |
| "337 8ee84b72-e673-43f0-b65c-7f309f30d866\n", | |
| "338 8f8a7e99-495a-440a-bebc-e9ada0229e8f\n", | |
| "339 8fb241b2-b1db-455e-b02c-27cf4441491f\n", | |
| "340 8fb35b9c-3a49-4227-b1f9-91df828ffa46\n", | |
| "341 901d7f93-0c92-48eb-b6b0-6ba50bf8ed6e\n", | |
| "342 9065c797-f8bf-422c-b88c-59e179cb67fd\n", | |
| "343 9073087f-ce99-414e-b592-85b264c5591a\n", | |
| "344 9140070d-00bd-439a-bbd2-2c223a1a1ec6\n", | |
| "345 9177e007-a0a6-488d-b1a8-c066194cd5a9\n", | |
| "346 91cf7e7a-1ca2-4c08-b677-bbee7418a7bc\n", | |
| "347 91d794a8-d97d-4922-bbbc-6c3b74cce4d5\n", | |
| "348 91e2e0af-9ec8-4f55-bf74-378f0f1c97bc\n", | |
| "349 921e01a8-f90b-4f94-b8c7-d9356650b669\n", | |
| "350 9224fd4e-b342-4d69-b9bd-bb684fe32023\n", | |
| "351 9240b0c3-3ece-487d-b0e9-e6cdf29215c8\n", | |
| "352 92a4c8b8-6ce9-4178-b3d5-99de0a12f875\n", | |
| "353 93749de6-3ebc-4af9-b8db-bd4535af1d04\n", | |
| "354 93a55c87-52b3-47fa-b315-1fac5a44961b\n", | |
| "\n", | |
| "[355 rows x 1 columns]" | |
| ] | |
| }, | |
| "execution_count": 129, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "device_ids_res" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 130, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "device_ids_with_open_interval_str = \",\".join([f\"'{s}'\" for s in device_ids_res.device_id])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 131, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "n_devices_with_open_intervals_and_la_events_query = f\"\"\"\n", | |
| "select count(distinct e.device_id) as n_devices from\n", | |
| "(select distinct on (device_id) * from events\n", | |
| "where org_id = 581 \n", | |
| "and provider_id = '63f13c48-34ff-49d2-aca7-cf6a5b6171c3' \n", | |
| "and device_id in ({device_ids_with_open_interval_str})\n", | |
| "and event_time > '2019-01-14 08:22:50-0800'\n", | |
| ") as la_events\n", | |
| "left join events as e\n", | |
| "on e.org_id = 583 and e.device_id = la_events.device_id and e.provider_id = '63f13c48-34ff-49d2-aca7-cf6a5b6171c3' and e.event_time < '2019-01-14 08:22:50-0800' \n", | |
| "\"\"\"" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 132, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "n_devices_with_open_interval_and_la_res = pd.read_sql(n_devices_with_open_intervals_and_la_events_query, con=dwh_engine)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 133, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>n_devices</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>0</th>\n", | |
| " <td>250</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " n_devices\n", | |
| "0 250" | |
| ] | |
| }, | |
| "execution_count": 133, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "n_devices_with_open_interval_and_la_res" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 134, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "query = f\"\"\"SELECT \n", | |
| "last_event.year, last_event.week,\n", | |
| "count(distinct last_event.device_id) as n_culver_devices,\n", | |
| "count(distinct la_events.device_id) as n_la_devices_from_culver\n", | |
| "FROM\n", | |
| "(\n", | |
| "select DISTINCT on (device_id) *, extract(YEAR FROM event_time) as year, extract(WEEK FROM event_time) as week\n", | |
| "from events\n", | |
| "where org_id = 583 and provider_id='63f13c48-34ff-49d2-aca7-cf6a5b6171c3'\n", | |
| "and device_id in ({device_ids_with_open_interval_str})\n", | |
| "ORDER by device_id, event_time desc\n", | |
| ") as last_event\n", | |
| "LEFT JOIN events as la_events\n", | |
| "on la_events.org_id = 581 and la_events.device_id = last_event.device_id and la_events.provider_id='63f13c48-34ff-49d2-aca7-cf6a5b6171c3' and la_events.event_time > last_event.event_time\n", | |
| "WHERE last_event.event_type in ('available', 'unavailable')\n", | |
| "GROUP BY last_event.year, last_event.week\n", | |
| "order by last_event.year, last_event.week;\"\"\"\n", | |
| "\n", | |
| "query_res = pd.read_sql(query, con=dwh_engine)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 135, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div>\n", | |
| "<style scoped>\n", | |
| " .dataframe tbody tr th:only-of-type {\n", | |
| " vertical-align: middle;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe tbody tr th {\n", | |
| " vertical-align: top;\n", | |
| " }\n", | |
| "\n", | |
| " .dataframe thead th {\n", | |
| " text-align: right;\n", | |
| " }\n", | |
| "</style>\n", | |
| "<table border=\"1\" class=\"dataframe\">\n", | |
| " <thead>\n", | |
| " <tr style=\"text-align: right;\">\n", | |
| " <th></th>\n", | |
| " <th>year</th>\n", | |
| " <th>week</th>\n", | |
| " <th>n_culver_devices</th>\n", | |
| " <th>n_la_devices_from_culver</th>\n", | |
| " </tr>\n", | |
| " </thead>\n", | |
| " <tbody>\n", | |
| " <tr>\n", | |
| " <th>0</th>\n", | |
| " <td>2018.0</td>\n", | |
| " <td>1.0</td>\n", | |
| " <td>3</td>\n", | |
| " <td>3</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>1</th>\n", | |
| " <td>2018.0</td>\n", | |
| " <td>48.0</td>\n", | |
| " <td>21</td>\n", | |
| " <td>21</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>2</th>\n", | |
| " <td>2018.0</td>\n", | |
| " <td>49.0</td>\n", | |
| " <td>38</td>\n", | |
| " <td>35</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>3</th>\n", | |
| " <td>2018.0</td>\n", | |
| " <td>50.0</td>\n", | |
| " <td>40</td>\n", | |
| " <td>40</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>4</th>\n", | |
| " <td>2018.0</td>\n", | |
| " <td>51.0</td>\n", | |
| " <td>43</td>\n", | |
| " <td>43</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>5</th>\n", | |
| " <td>2018.0</td>\n", | |
| " <td>52.0</td>\n", | |
| " <td>41</td>\n", | |
| " <td>40</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>6</th>\n", | |
| " <td>2019.0</td>\n", | |
| " <td>1.0</td>\n", | |
| " <td>42</td>\n", | |
| " <td>39</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>7</th>\n", | |
| " <td>2019.0</td>\n", | |
| " <td>2.0</td>\n", | |
| " <td>45</td>\n", | |
| " <td>45</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>8</th>\n", | |
| " <td>2019.0</td>\n", | |
| " <td>3.0</td>\n", | |
| " <td>5</td>\n", | |
| " <td>5</td>\n", | |
| " </tr>\n", | |
| " <tr>\n", | |
| " <th>9</th>\n", | |
| " <td>2019.0</td>\n", | |
| " <td>4.0</td>\n", | |
| " <td>3</td>\n", | |
| " <td>2</td>\n", | |
| " </tr>\n", | |
| " </tbody>\n", | |
| "</table>\n", | |
| "</div>" | |
| ], | |
| "text/plain": [ | |
| " year week n_culver_devices n_la_devices_from_culver\n", | |
| "0 2018.0 1.0 3 3\n", | |
| "1 2018.0 48.0 21 21\n", | |
| "2 2018.0 49.0 38 35\n", | |
| "3 2018.0 50.0 40 40\n", | |
| "4 2018.0 51.0 43 43\n", | |
| "5 2018.0 52.0 41 40\n", | |
| "6 2019.0 1.0 42 39\n", | |
| "7 2019.0 2.0 45 45\n", | |
| "8 2019.0 3.0 5 5\n", | |
| "9 2019.0 4.0 3 2" | |
| ] | |
| }, | |
| "execution_count": 135, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "query_res" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "display_name": "Python 3", | |
| "language": "python", | |
| "name": "python3" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 2 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment