diff --git a/data/divorce/.ipynb_checkpoints/02_divorce_timeliness_all_creation-checkpoint.ipynb b/data/divorce/.ipynb_checkpoints/02_divorce_timeliness_all_creation-checkpoint.ipynb new file mode 100644 index 0000000..739fa98 --- /dev/null +++ b/data/divorce/.ipynb_checkpoints/02_divorce_timeliness_all_creation-checkpoint.ipynb @@ -0,0 +1,3361 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "7ef126c9-fcfc-4b09-beca-e3cf2245740e", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dd290297-bf9e-43a6-85c0-f6b816f61859", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd # a module which provides the data structures and functions to store and manipulate tables in dataframes\n", + "import pydbtools as pydb # A module which allows SQL queries to be run on the Analytical Platform from Python, see https://github.com/moj-analytical-services/pydbtools\n", + "import boto3 # allows you to directly create, update, and delete AWS resources from Python scripts\n", + "\n", + "# sets parameters to view dataframes for tables easier\n", + "pd.set_option(\"display.max_columns\", 100)\n", + "pd.set_option(\"display.width\", 900)\n", + "pd.set_option(\"display.max_colwidth\", 200)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "645a3f8f-8011-403e-908f-9f762090439a", + "metadata": {}, + "outputs": [], + "source": [ + "#Variables to be used in this notebook\n", + "\n", + "#this is the athena database we will be storing our tables in\n", + "fcsq_database = \"fcsq\"\n", + "\n", + "#this is the s3 bucket we will be saving data to\n", + "s3 = boto3.resource(\"s3\")\n", + "bucket = s3.Bucket(\"alpha-family-data\")\n", + "\n", + "#Last full year to be published - including this publication\n", + "annual_year = 2023\n", + "\n", + "#Current publication variables\n", + "current_year = 2024\n", + "current_quarter = 3\n", + "\n", + "#Next publication variables\n", + "next_quarter_year = 2024 \n", + "next_quarter = 4" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "88caec91-5f3a-4e51-b1a1-09127b8fe7e9", + "metadata": {}, + "outputs": [], + "source": [ + "# All timeliness calculations" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b0958f7d-81c3-4f84-a1b5-160592cf68cc", + "metadata": {}, + "outputs": [], + "source": [ + "#Petitions - annual, with digital/paper split, with law split - averages table\n", + "\n", + "create_averages_1_table =f\"\"\"\n", + "SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " digital_paper as case_type,\n", + " law,\n", + " count(*) as count,\n", + " CAST(NULL AS DOUBLE) AS mean_weeks,\n", + " CAST(NULL AS DOUBLE) AS median_weeks\n", + "\n", + "FROM fcsq.divorce_fct_petitions\n", + "\n", + "WHERE Year <= {annual_year}\n", + "\n", + "GROUP BY\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END,\n", + " Stage,\n", + " Year,\n", + " digital_paper,\n", + " law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_1_table,'averages_1')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "541763e6-db7c-49e1-8b23-a0e5d3ab3b0d", + "metadata": {}, + "outputs": [], + "source": [ + "#Petitions - annual, with digital/paper split without law split - averages table\n", + "\n", + "create_averages_2_table =f\"\"\"\n", + "SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " digital_paper as case_type,\n", + " 'All' as law,\n", + " count(*) as count,\n", + " CAST(NULL AS DOUBLE) AS mean_weeks,\n", + " CAST(NULL AS DOUBLE) AS median_weeks\n", + "\n", + "FROM fcsq.divorce_fct_petitions\n", + "\n", + "WHERE Year <= {annual_year}\n", + "\n", + "GROUP BY\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END,\n", + " Stage,\n", + " Year,\n", + " digital_paper;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_2_table,'averages_2')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eaf9a15b-aedc-4e82-b56e-61bc303ac10b", + "metadata": {}, + "outputs": [], + "source": [ + "#Petitions - annual, without digital/paper split, with law split - averages table\n", + "\n", + "create_averages_3_table =f\"\"\"\n", + "SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " 'All' as case_type,\n", + " law,\n", + " count(*) as count,\n", + " CAST(NULL AS DOUBLE) AS mean_weeks,\n", + " CAST(NULL AS DOUBLE) AS median_weeks\n", + "\n", + "FROM fcsq.divorce_fct_petitions\n", + "\n", + "WHERE Year <= {annual_year}\n", + "\n", + "GROUP BY\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END,\n", + " Stage,\n", + " Year,\n", + " law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_3_table,'averages_3')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3e928b04-bf5e-46ec-8a28-f643ba84c128", + "metadata": {}, + "outputs": [], + "source": [ + "#Petitions - annual, without digital/paper split, without law split - averages table\n", + "\n", + "create_averages_4_table =f\"\"\"\n", + "SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " 'All' as case_type,\n", + " 'All' as law,\n", + " count(*) as count,\n", + " CAST(NULL AS DOUBLE) AS mean_weeks,\n", + " CAST(NULL AS DOUBLE) AS median_weeks\n", + "\n", + "FROM fcsq.divorce_fct_petitions\n", + "\n", + "WHERE Year <= {annual_year}\n", + "\n", + "GROUP BY\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END,\n", + " Stage,\n", + " Year;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_4_table,'averages_4')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3b7a7c8e-6949-4fde-bafc-c92c0d510f96", + "metadata": {}, + "outputs": [], + "source": [ + "#Petitions - Quarterly, with digital/paper split, with law split - averages table\n", + "\n", + "create_averages_5_table =f\"\"\"\n", + "SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " digital_paper as case_type,\n", + " law,\n", + " count(*) as count,\n", + " CAST(NULL AS DOUBLE) AS mean_weeks,\n", + " CAST(NULL AS DOUBLE) AS median_weeks\n", + "\n", + "FROM fcsq.divorce_fct_petitions\n", + "\n", + "WHERE NOT (Year = {next_quarter_year} AND Quarter = {next_quarter})\n", + "\n", + "GROUP BY\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END,\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " digital_paper,\n", + " law; \n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_5_table,'averages_5')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0d979168-0ffc-4c9c-b477-b9eb23a87340", + "metadata": {}, + "outputs": [], + "source": [ + "#Petitions - Quarterly, with digital/paper split without law split - averages table\n", + "\n", + "create_averages_6_table =f\"\"\"\n", + "SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " digital_paper as case_type,\n", + " 'All' as law,\n", + " count(*) as count,\n", + " CAST(NULL AS DOUBLE) AS mean_weeks,\n", + " CAST(NULL AS DOUBLE) AS median_weeks\n", + "\n", + "FROM fcsq.divorce_fct_petitions\n", + "\n", + "WHERE NOT (Year = {next_quarter_year} AND Quarter = {next_quarter})\n", + "\n", + "GROUP BY\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END,\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " digital_paper;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_6_table,'averages_6')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "da98d35c-c019-45d6-9118-8d5fe79cbe94", + "metadata": {}, + "outputs": [], + "source": [ + "#Petitions - Quarterly, without digital/paper split, with law split - averages table\n", + "\n", + "create_averages_7_table =f\"\"\"\n", + "SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " 'All' as case_type,\n", + " law,\n", + " count(*) as count,\n", + " CAST(NULL AS DOUBLE) AS mean_weeks,\n", + " CAST(NULL AS DOUBLE) AS median_weeks\n", + "\n", + "FROM fcsq.divorce_fct_petitions\n", + "\n", + "WHERE NOT (Year = {next_quarter_year} AND Quarter = {next_quarter})\n", + "\n", + "GROUP BY\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END,\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " law; \n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_7_table,'averages_7')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6b5e06c3-af98-41de-92cb-65b4ae43d8b7", + "metadata": {}, + "outputs": [], + "source": [ + "#Petitions - Quarterly, without digital/paper split, without law split - averages table\n", + "\n", + "create_averages_8_table =f\"\"\"\n", + "SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " 'All' as case_type,\n", + " 'All' as law,\n", + " count(*) as count,\n", + " CAST(NULL AS DOUBLE) AS mean_weeks,\n", + " CAST(NULL AS DOUBLE) AS median_weeks\n", + "\n", + "FROM fcsq.divorce_fct_petitions\n", + "\n", + "WHERE NOT (Year = {next_quarter_year} AND Quarter = {next_quarter})\n", + "\n", + "GROUP BY\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END,\n", + " Stage,\n", + " Year,\n", + " Quarter;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_8_table,'averages_8')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c5bbdb1f-2976-4103-8433-3250c88989ac", + "metadata": {}, + "outputs": [], + "source": [ + "# Nisi - Annual, with digital/paper split, with law split - averages table\n", + "\n", + "# create_averages_9_table =f\"\"\"\n", + "# SELECT \n", + "# \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# Quarter,\n", + "# case_type,\n", + "# law,\n", + "# count(*) as count,\n", + "# ROUND(AVG(CASE WHEN pet_to_nisi >= 0 THEN pet_to_nisi END)/7,3) AS mean_weeks,\n", + "# ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + "# THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END) + MIN(CASE WHEN data_half = 2 THEN pet_to_nisi END)) /2.0 \n", + "# ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END)\n", + "# END) / 7, 3) AS median_weeks \n", + " \n", + "# FROM (\n", + "# SELECT\n", + "# CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + "# ELSE new_case_type \n", + "# END AS \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# CAST(NULL AS VARCHAR) AS Quarter,\n", + "# digital_paper AS case_type,\n", + "# law,\n", + "# pet_to_nisi,\n", + "# NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, digital_paper, law \n", + "# ORDER BY pet_to_nisi) AS data_half\n", + "\n", + "# FROM fcsq.divorce_fct_nisi\n", + "\n", + "# ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, digital_paper, law, pet_to_nisi) AS t1\n", + " \n", + "# GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "# ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "# \"\"\"\n", + "# pydb.create_temp_table(create_averages_9_table,'averages_9')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "47acedef-f3bc-49d6-90ac-2bc62fc4f2a0", + "metadata": {}, + "outputs": [], + "source": [ + "# Nisi - Annual, with digital/paper split, with law split - averages table\n", + "\n", + "create_averages_9a_table =f\"\"\"\n", + "SELECT \n", + " \"Case\",\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " case_type,\n", + " law,\n", + " count(*) as count,\n", + " ROUND(AVG(pet_to_nisi)/7.0,3) AS mean_weeks,\n", + " ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + " THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END) + MIN(CASE WHEN data_half = 2 THEN pet_to_nisi END)) /2.0 \n", + " ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END)\n", + " END) / 7.0, 3) AS median_weeks \n", + " \n", + "FROM (\n", + " SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " digital_paper AS case_type,\n", + " law,\n", + " pet_to_nisi,\n", + " NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' \n", + " ELSE new_case_type \n", + " END, \n", + " stage, \n", + " year, \n", + " digital_paper, \n", + " law \n", + " ORDER BY pet_to_nisi) AS data_half\n", + "\n", + " FROM fcsq.divorce_fct_nisi\n", + " \n", + " WHERE pet_to_nisi >= 0\n", + "\n", + " ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, digital_paper, law, pet_to_nisi)\n", + " \n", + "GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_9a_table,'averages_9a')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bf9f4a34-a32d-4deb-a366-d62ef6a889ec", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_9b_table =f\"\"\"\n", + "SELECT \n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " digital_paper AS case_type,\n", + " law,\n", + " count(*) as count\n", + " \n", + "FROM fcsq.divorce_fct_nisi\n", + "\n", + "WHERE Year <= {annual_year}\n", + "\n", + "GROUP BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END,\n", + " Stage,\n", + " Year,\n", + " digital_paper,\n", + " law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_9b_table,'averages_9b')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c654660e-b558-42d1-8302-fd57457fb547", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_9_table =f\"\"\"\n", + "SELECT\n", + " b.*,\n", + " a.mean_weeks,\n", + " a.median_weeks\n", + " \n", + "FROM __temp__.averages_9b AS b\n", + "LEFT JOIN __temp__.averages_9a AS a\n", + " ON a.\"Case\" = b.\"Case\" AND\n", + " a.Stage = b.Stage AND\n", + " a.year = b.year AND\n", + " a.case_type = b.case_type AND\n", + " a.law=b.law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_9_table,'averages_9')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "092fa2ae-2051-49b4-ae8d-d88540e3882d", + "metadata": {}, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from __temp__.averages_9\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "65f909e0-36cd-4cda-9a84-be19e6347991", + "metadata": {}, + "outputs": [], + "source": [ + "#Nisi - Annual, with digital/paper split, without law split - averages table\n", + "\n", + "# create_averages_10_table =f\"\"\"\n", + "# SELECT \n", + "# \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# Quarter,\n", + "# case_type,\n", + "# law,\n", + "# count(*) as count,\n", + "# ROUND(AVG(CASE WHEN pet_to_nisi >= 0 THEN pet_to_nisi END)/7,3) AS mean_weeks,\n", + "# ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + "# THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END) + MIN(CASE WHEN data_half = 2 THEN pet_to_nisi END)) /2.0 \n", + "# ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END)\n", + "# END) / 7, 3) AS median_weeks \n", + " \n", + "# FROM (\n", + "# SELECT\n", + "# CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + "# ELSE new_case_type \n", + "# END AS \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# CAST(NULL AS VARCHAR) AS Quarter,\n", + "# digital_paper AS case_type,\n", + "# 'All' AS law,\n", + "# pet_to_nisi,\n", + "# NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, digital_paper \n", + "# ORDER BY pet_to_nisi) AS data_half\n", + "\n", + "# FROM fcsq.divorce_fct_nisi\n", + "\n", + "# ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, digital_paper, pet_to_nisi) AS t2\n", + " \n", + "# GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "# ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "# \"\"\"\n", + "# pydb.create_temp_table(create_averages_10_table,'averages_10')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f90c0fda-4a21-405a-b5f6-84e288a2bbb1", + "metadata": {}, + "outputs": [], + "source": [ + "#Nisi - Annual, with digital/paper split, without law split - averages table\n", + "\n", + "create_averages_10a_table =f\"\"\"\n", + "SELECT \n", + " \"Case\",\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " case_type,\n", + " law,\n", + " count(*) as count,\n", + " ROUND(AVG(pet_to_nisi)/7.0,3) AS mean_weeks,\n", + " ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + " THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END) + MIN(CASE WHEN data_half = 2 THEN pet_to_nisi END)) /2.0 \n", + " ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END)\n", + " END) / 7.0, 3) AS median_weeks \n", + " \n", + "FROM (\n", + " SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " digital_paper AS case_type,\n", + " 'All' AS law,\n", + " pet_to_nisi,\n", + " NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' \n", + " ELSE new_case_type \n", + " END, \n", + " stage, \n", + " year, \n", + " digital_paper \n", + " ORDER BY pet_to_nisi) AS data_half\n", + "\n", + " FROM fcsq.divorce_fct_nisi\n", + " \n", + " WHERE pet_to_nisi >= 0\n", + "\n", + " ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, digital_paper, pet_to_nisi)\n", + " \n", + "GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_10a_table,'averages_10a')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d41380d7-1a2d-475f-8636-683cea73c7cf", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_10b_table =f\"\"\"\n", + "SELECT \n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " digital_paper AS case_type,\n", + " 'All' AS law,\n", + " count(*) as count\n", + " \n", + "FROM fcsq.divorce_fct_nisi\n", + "\n", + "WHERE Year <= {annual_year}\n", + "\n", + "GROUP BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END,\n", + " Stage,\n", + " Year,\n", + " digital_paper;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_10b_table,'averages_10b')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fc2898b3-5ba4-4231-a1fd-4e05c3a2b42b", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_10_table =f\"\"\"\n", + "SELECT\n", + " b.*,\n", + " a.mean_weeks,\n", + " a.median_weeks\n", + " \n", + "FROM __temp__.averages_10b AS b\n", + "LEFT JOIN __temp__.averages_10a AS a\n", + " ON a.\"Case\" = b.\"Case\" AND\n", + " a.Stage = b.Stage AND\n", + " a.year = b.year AND\n", + " a.case_type = b.case_type AND\n", + " a.law=b.law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_10_table,'averages_10')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5d28d16d-8fff-4602-952b-b02827379d34", + "metadata": {}, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from __temp__.averages_10\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5f1d9072-ce77-4136-a4fd-7e057f17b6a1", + "metadata": {}, + "outputs": [], + "source": [ + "#Nisi - Annual, without digital/paper split, with law split - averages table\n", + "\n", + "# create_averages_11_table =f\"\"\"\n", + "# SELECT \n", + "# \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# Quarter,\n", + "# case_type,\n", + "# law,\n", + "# count(*) as count,\n", + "# ROUND(AVG(CASE WHEN pet_to_nisi >= 0 THEN pet_to_nisi END)/7,3) AS mean_weeks,\n", + "# ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + "# THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END) + MIN(CASE WHEN data_half = 2 THEN pet_to_nisi END)) /2.0 \n", + "# ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END)\n", + "# END) / 7, 3) AS median_weeks \n", + " \n", + "# FROM (\n", + "# SELECT\n", + "# CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + "# ELSE new_case_type \n", + "# END AS \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# CAST(NULL AS VARCHAR) AS Quarter,\n", + "# 'All' AS case_type,\n", + "# law,\n", + "# pet_to_nisi,\n", + "# NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, law \n", + "# ORDER BY pet_to_nisi) AS data_half\n", + "\n", + "# FROM fcsq.divorce_fct_nisi\n", + "\n", + "# ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, law, pet_to_nisi) AS t3\n", + " \n", + "# GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "# ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "# \"\"\"\n", + "# pydb.create_temp_table(create_averages_11_table,'averages_11')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a601cee8-2240-4e44-8a2e-72e96b05980c", + "metadata": {}, + "outputs": [], + "source": [ + "#Nisi - Annual, without digital/paper split, with law split - averages table\n", + "\n", + "create_averages_11a_table =f\"\"\"\n", + "SELECT \n", + " \"Case\",\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " case_type,\n", + " law,\n", + " count(*) as count,\n", + " ROUND(AVG(pet_to_nisi)/7.0,3) AS mean_weeks,\n", + " ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + " THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END) + MIN(CASE WHEN data_half = 2 THEN pet_to_nisi END)) /2.0 \n", + " ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END)\n", + " END) / 7.0, 3) AS median_weeks \n", + " \n", + "FROM (\n", + " SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " 'All' AS case_type,\n", + " law,\n", + " pet_to_nisi,\n", + " NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' \n", + " ELSE new_case_type \n", + " END, \n", + " stage, \n", + " year, \n", + " law \n", + " ORDER BY pet_to_nisi) AS data_half\n", + "\n", + " FROM fcsq.divorce_fct_nisi\n", + " \n", + " WHERE pet_to_nisi >= 0\n", + "\n", + " ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, law, pet_to_nisi)\n", + " \n", + "GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_11a_table,'averages_11a')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2dd550b0-d745-4f6f-a65b-185902b9f944", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_11b_table =f\"\"\"\n", + "SELECT \n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " 'All' AS case_type,\n", + " law,\n", + " count(*) as count\n", + " \n", + "FROM fcsq.divorce_fct_nisi\n", + "\n", + "WHERE Year <= {annual_year}\n", + "\n", + "GROUP BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END,\n", + " Stage,\n", + " Year,\n", + " law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_11b_table,'averages_11b')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d7f2ada4-c5d2-4a4a-8651-d411a99fb450", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_11_table =f\"\"\"\n", + "SELECT\n", + " b.*,\n", + " a.mean_weeks,\n", + " a.median_weeks\n", + " \n", + "FROM __temp__.averages_11b AS b\n", + "LEFT JOIN __temp__.averages_11a AS a\n", + " ON a.\"Case\" = b.\"Case\" AND\n", + " a.Stage = b.Stage AND\n", + " a.year = b.year AND\n", + " a.case_type = b.case_type AND\n", + " a.law=b.law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_11_table,'averages_11')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5623ac6e-c3c5-49b1-86e3-2cd6e16e76a9", + "metadata": {}, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from __temp__.averages_11\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d2a72b63-513d-4051-a75e-06e4e74bf89c", + "metadata": {}, + "outputs": [], + "source": [ + "#Nisi - Annual, without digital/paper split, without law split - averages table\n", + "\n", + "# create_averages_12_table =f\"\"\"\n", + "# SELECT \n", + "# \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# Quarter,\n", + "# case_type,\n", + "# law,\n", + "# count(*) as count,\n", + "# ROUND(AVG(CASE WHEN pet_to_nisi >= 0 THEN pet_to_nisi END)/7,3) AS mean_weeks,\n", + "# ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + "# THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END) + MIN(CASE WHEN data_half = 2 THEN pet_to_nisi END)) /2.0 \n", + "# ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END)\n", + "# END) / 7, 3) AS median_weeks \n", + " \n", + "# FROM (\n", + "# SELECT\n", + "# CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + "# ELSE new_case_type \n", + "# END AS \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# CAST(NULL AS VARCHAR) AS Quarter,\n", + "# 'All' AS case_type,\n", + "# 'All' AS law,\n", + "# pet_to_nisi,\n", + "# NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year \n", + "# ORDER BY pet_to_nisi) AS data_half\n", + "\n", + "# FROM fcsq.divorce_fct_nisi\n", + "\n", + "# ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, pet_to_nisi) AS t4\n", + " \n", + "# GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "# ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "# \"\"\"\n", + "# pydb.create_temp_table(create_averages_12_table,'averages_12')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1242735f-adb8-40b1-afe5-fef77e2f0083", + "metadata": {}, + "outputs": [], + "source": [ + "#Nisi - Annual, without digital/paper split, without law split - averages table\n", + "\n", + "create_averages_12a_table =f\"\"\"\n", + "SELECT \n", + " \"Case\",\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " case_type,\n", + " law,\n", + " count(*) as count,\n", + " ROUND(AVG(pet_to_nisi)/7.0,3) AS mean_weeks,\n", + " ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + " THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END) + MIN(CASE WHEN data_half = 2 THEN pet_to_nisi END)) /2.0 \n", + " ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END)\n", + " END) / 7.0, 3) AS median_weeks \n", + " \n", + "FROM (\n", + " SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " 'All' AS case_type,\n", + " 'All' AS law,\n", + " pet_to_nisi,\n", + " NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' \n", + " ELSE new_case_type \n", + " END, \n", + " stage, \n", + " year\n", + " ORDER BY pet_to_nisi) AS data_half\n", + "\n", + " FROM fcsq.divorce_fct_nisi\n", + " \n", + " WHERE pet_to_nisi >= 0\n", + "\n", + " ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, pet_to_nisi)\n", + " \n", + "GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_12a_table,'averages_12a')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3c512a9b-7886-4b3f-ac9c-c202ef78da16", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_12b_table =f\"\"\"\n", + "SELECT \n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " 'All' AS case_type,\n", + " 'All' AS law,\n", + " count(*) as count\n", + " \n", + "FROM fcsq.divorce_fct_nisi\n", + "\n", + "WHERE Year <= {annual_year}\n", + "\n", + "GROUP BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END,\n", + " Stage,\n", + " Year;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_12b_table,'averages_12b')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b8bcb2f8-dc24-437b-80fb-b17f3a6364fa", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_12_table =f\"\"\"\n", + "SELECT\n", + " b.*,\n", + " a.mean_weeks,\n", + " a.median_weeks\n", + " \n", + "FROM __temp__.averages_12b AS b\n", + "LEFT JOIN __temp__.averages_12a AS a\n", + " ON a.\"Case\" = b.\"Case\" AND\n", + " a.Stage = b.Stage AND\n", + " a.year = b.year AND\n", + " a.case_type = b.case_type AND\n", + " a.law=b.law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_12_table,'averages_12')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6f20bf5a-78a7-45ca-aa91-5ea8034c1bac", + "metadata": {}, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from __temp__.averages_12\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4f89256e-7e44-4bc2-8117-83cc19eb7639", + "metadata": {}, + "outputs": [], + "source": [ + "#Nisi - Quarterly, with digital/paper split, with law split - averages table \n", + "\n", + "# create_averages_13_table =f\"\"\"\n", + "# SELECT \n", + "# \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# Quarter,\n", + "# case_type,\n", + "# law,\n", + "# count(*) as count,\n", + "# ROUND(AVG(CASE WHEN pet_to_nisi >= 0 THEN pet_to_nisi END)/7,3) AS mean_weeks,\n", + "# ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + "# THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END) + MIN(CASE WHEN data_half = 2 THEN pet_to_nisi END)) /2.0 \n", + "# ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END)\n", + "# END) / 7, 3) AS median_weeks \n", + " \n", + "# FROM (\n", + "# SELECT\n", + "# CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + "# ELSE new_case_type \n", + "# END AS \"Case\",\n", + "# Stage,\n", + "# CAST(NULL AS INT) AS Year,\n", + "# CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + "# digital_paper AS case_type,\n", + "# law,\n", + "# pet_to_nisi,\n", + "# NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), digital_paper, law \n", + "# ORDER BY pet_to_nisi) AS data_half\n", + "\n", + "# FROM fcsq.divorce_fct_nisi\n", + "\n", + "# ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), digital_paper, law, pet_to_nisi) AS t5\n", + " \n", + "# GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "# ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "# \"\"\"\n", + "# pydb.create_temp_table(create_averages_13_table,'averages_13')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bda27233-93ab-41d7-b8e0-d5954a888b54", + "metadata": {}, + "outputs": [], + "source": [ + "#Nisi - Quarterly, with digital/paper split, with law split - averages table \n", + "\n", + "create_averages_13a_table =f\"\"\"\n", + "SELECT \n", + " \"Case\",\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " case_type,\n", + " law,\n", + " count(*) as count,\n", + " ROUND(AVG(pet_to_nisi)/7.0,3) AS mean_weeks,\n", + " ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + " THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END) + MIN(CASE WHEN data_half = 2 THEN pet_to_nisi END)) /2.0 \n", + " ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END)\n", + " END) / 7.0, 3) AS median_weeks \n", + " \n", + "FROM (\n", + " SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " digital_paper AS case_type,\n", + " law,\n", + " pet_to_nisi,\n", + " NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' \n", + " ELSE new_case_type \n", + " END, \n", + " stage, \n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), \n", + " digital_paper, \n", + " law \n", + " ORDER BY pet_to_nisi) AS data_half\n", + "\n", + " FROM fcsq.divorce_fct_nisi\n", + " \n", + " WHERE pet_to_nisi >= 0\n", + "\n", + " ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), digital_paper, law, pet_to_nisi)\n", + " \n", + "GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_13a_table,'averages_13a')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b047880e-7c3c-4d9e-9619-41c979f79738", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_13b_table =f\"\"\"\n", + "SELECT \n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " digital_paper AS case_type,\n", + " law,\n", + " count(*) as count\n", + " \n", + "FROM fcsq.divorce_fct_nisi\n", + "\n", + "WHERE NOT (Year = {next_quarter_year} AND Quarter = {next_quarter})\n", + "\n", + "GROUP BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END,\n", + " Stage,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)),\n", + " digital_paper,\n", + " law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_13b_table,'averages_13b')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "18e62222-2ac4-4012-afaa-64326edef07b", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_13_table =f\"\"\"\n", + "SELECT\n", + " b.*,\n", + " a.mean_weeks,\n", + " a.median_weeks\n", + " \n", + "FROM __temp__.averages_13b AS b\n", + "LEFT JOIN __temp__.averages_13a AS a\n", + " ON a.\"Case\" = b.\"Case\" AND\n", + " a.Stage = b.Stage AND\n", + " a.quarter = b.quarter AND\n", + " a.case_type = b.case_type AND\n", + " a.law=b.law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_13_table,'averages_13')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "859e6d5f-e498-470f-8566-1a9a21b847f8", + "metadata": {}, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from __temp__.averages_13\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5c2e6138-b339-4ce1-a9ef-56bf08b2c89d", + "metadata": {}, + "outputs": [], + "source": [ + "#pydb.delete_table_and_data(database=\"__temp__\", table=\"averages_13\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5a67bd4b-3447-445d-a8cb-81ae61304a38", + "metadata": {}, + "outputs": [], + "source": [ + "#Nisi - Quarterly, with digital/paper split, without law split - averages table\n", + "\n", + "# create_averages_14_table =f\"\"\"\n", + "# SELECT \n", + "# \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# Quarter,\n", + "# case_type,\n", + "# law,\n", + "# count(*) as count,\n", + "# ROUND(AVG(CASE WHEN pet_to_nisi >= 0 THEN pet_to_nisi END)/7,3) AS mean_weeks,\n", + "# ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + "# THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END) + MIN(CASE WHEN data_half = 2 THEN pet_to_nisi END)) /2.0 \n", + "# ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END)\n", + "# END) / 7, 3) AS median_weeks \n", + " \n", + "# FROM (\n", + "# SELECT\n", + "# CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + "# ELSE new_case_type \n", + "# END AS \"Case\",\n", + "# Stage,\n", + "# CAST(NULL AS INT) AS Year,\n", + "# CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + "# digital_paper AS case_type,\n", + "# 'All' AS law,\n", + "# pet_to_nisi,\n", + "# NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), digital_paper \n", + "# ORDER BY pet_to_nisi) AS data_half\n", + "\n", + "# FROM fcsq.divorce_fct_nisi\n", + "\n", + "# ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), digital_paper, pet_to_nisi) AS t6\n", + " \n", + "# GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "# ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "# \"\"\"\n", + "# pydb.create_temp_table(create_averages_14_table,'averages_14')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f896a0bd-6cb0-4734-ae99-f00f6a165844", + "metadata": {}, + "outputs": [], + "source": [ + "#Nisi - Quarterly, with digital/paper split, without law split - averages table\n", + "\n", + "create_averages_14a_table =f\"\"\"\n", + "SELECT \n", + " \"Case\",\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " case_type,\n", + " law,\n", + " count(*) as count,\n", + " ROUND(AVG(pet_to_nisi)/7.0,3) AS mean_weeks,\n", + " ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + " THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END) + MIN(CASE WHEN data_half = 2 THEN pet_to_nisi END)) /2.0 \n", + " ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END)\n", + " END) / 7.0, 3) AS median_weeks \n", + " \n", + "FROM (\n", + " SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " digital_paper AS case_type,\n", + " 'All' AS law,\n", + " pet_to_nisi,\n", + " NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' \n", + " ELSE new_case_type \n", + " END, \n", + " stage, \n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), \n", + " digital_paper\n", + " ORDER BY pet_to_nisi) AS data_half\n", + "\n", + " FROM fcsq.divorce_fct_nisi\n", + " \n", + " WHERE pet_to_nisi >= 0\n", + "\n", + " ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), digital_paper, pet_to_nisi)\n", + " \n", + "GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_14a_table,'averages_14a')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "84e2846e-9e60-4409-8f03-f5cb4e6d1e92", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_14b_table =f\"\"\"\n", + "SELECT \n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " digital_paper AS case_type,\n", + " 'All' AS law,\n", + " count(*) as count\n", + " \n", + "FROM fcsq.divorce_fct_nisi\n", + "\n", + "WHERE NOT (Year = {next_quarter_year} AND Quarter = {next_quarter})\n", + "\n", + "GROUP BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END,\n", + " Stage,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)),\n", + " digital_paper;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_14b_table,'averages_14b')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f15020ee-2b1f-44de-b653-2f3563d956a4", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_14_table =f\"\"\"\n", + "SELECT\n", + " b.*,\n", + " a.mean_weeks,\n", + " a.median_weeks\n", + " \n", + "FROM __temp__.averages_14b AS b\n", + "LEFT JOIN __temp__.averages_14a AS a\n", + " ON a.\"Case\" = b.\"Case\" AND\n", + " a.Stage = b.Stage AND\n", + " a.quarter = b.quarter AND\n", + " a.case_type = b.case_type AND\n", + " a.law=b.law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_14_table,'averages_14')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1705ea9c-1407-4c68-ad1a-7f01412b80aa", + "metadata": {}, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from __temp__.averages_14\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "419d7a52-ce7b-454b-9e50-73d29b48805a", + "metadata": {}, + "outputs": [], + "source": [ + "#Nisi - Quarterly, without digital/paper split, with law split - averages table\n", + "\n", + "# create_averages_15_table =f\"\"\"\n", + "# SELECT \n", + "# \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# Quarter,\n", + "# case_type,\n", + "# law,\n", + "# count(*) as count,\n", + "# ROUND(AVG(CASE WHEN pet_to_nisi >= 0 THEN pet_to_nisi END)/7,3) AS mean_weeks,\n", + "# ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + "# THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END) + MIN(CASE WHEN data_half = 2 THEN pet_to_nisi END)) /2.0 \n", + "# ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END)\n", + "# END) / 7, 3) AS median_weeks \n", + " \n", + "# FROM (\n", + "# SELECT\n", + "# CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + "# ELSE new_case_type \n", + "# END AS \"Case\",\n", + "# Stage,\n", + "# CAST(NULL AS INT) AS Year,\n", + "# CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + "# 'All' AS case_type,\n", + "# law,\n", + "# pet_to_nisi,\n", + "# NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), law \n", + "# ORDER BY pet_to_nisi) AS data_half\n", + "\n", + "# FROM fcsq.divorce_fct_nisi\n", + "\n", + "# ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), law, pet_to_nisi) AS t7\n", + " \n", + "# GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "# ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "# \"\"\"\n", + "# pydb.create_temp_table(create_averages_15_table,'averages_15')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "102160a8-f2da-4279-b554-b67d2389fa52", + "metadata": {}, + "outputs": [], + "source": [ + "#Nisi - Quarterly, without digital/paper split, with law split - averages table\n", + "\n", + "create_averages_15a_table =f\"\"\"\n", + "SELECT \n", + " \"Case\",\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " case_type,\n", + " law,\n", + " count(*) as count,\n", + " ROUND(AVG(pet_to_nisi)/7.0,3) AS mean_weeks,\n", + " ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + " THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END) + MIN(CASE WHEN data_half = 2 THEN pet_to_nisi END)) /2.0 \n", + " ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END)\n", + " END) / 7.0, 3) AS median_weeks \n", + " \n", + "FROM (\n", + " SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " 'All' AS case_type,\n", + " law,\n", + " pet_to_nisi,\n", + " NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' \n", + " ELSE new_case_type \n", + " END, \n", + " stage, \n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)),\n", + " law \n", + " ORDER BY pet_to_nisi) AS data_half\n", + "\n", + " FROM fcsq.divorce_fct_nisi\n", + " \n", + " WHERE pet_to_nisi >= 0\n", + "\n", + " ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), law, pet_to_nisi)\n", + " \n", + "GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_15a_table,'averages_15a')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6380d89b-4343-4b54-a976-b5aa532064ca", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_15b_table =f\"\"\"\n", + "SELECT \n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " 'All' AS case_type,\n", + " law,\n", + " count(*) as count\n", + " \n", + "FROM fcsq.divorce_fct_nisi\n", + "\n", + "WHERE NOT (Year = {next_quarter_year} AND Quarter = {next_quarter})\n", + "\n", + "GROUP BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END,\n", + " Stage,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)),\n", + " law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_15b_table,'averages_15b')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "699e0a18-8cc7-4c8d-90e0-e02be543910d", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_15_table =f\"\"\"\n", + "SELECT\n", + " b.*,\n", + " a.mean_weeks,\n", + " a.median_weeks\n", + " \n", + "FROM __temp__.averages_15b AS b\n", + "LEFT JOIN __temp__.averages_15a AS a\n", + " ON a.\"Case\" = b.\"Case\" AND\n", + " a.Stage = b.Stage AND\n", + " a.quarter = b.quarter AND\n", + " a.case_type = b.case_type AND\n", + " a.law=b.law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_15_table,'averages_15')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "89c29ea6-1570-4226-8b45-b88fe5b13d1b", + "metadata": {}, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from __temp__.averages_15\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3e3d3c3c-5c07-4e10-9f03-4bc5f5b36dd3", + "metadata": {}, + "outputs": [], + "source": [ + "#Nisi - Quarterly, without digital/paper split, without law split - averages table\n", + "\n", + "# create_averages_16_table = f\"\"\"\n", + "# SELECT \n", + "# \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# Quarter,\n", + "# case_type,\n", + "# law,\n", + "# count(*) as count,\n", + "# ROUND(AVG(CASE WHEN pet_to_nisi >= 0 THEN pet_to_nisi END)/7,3) AS mean_weeks,\n", + "# ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + "# THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END) + MIN(CASE WHEN data_half = 2 THEN pet_to_nisi END)) /2.0 \n", + "# ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END)\n", + "# END) / 7, 3) AS median_weeks \n", + " \n", + "# FROM (\n", + "# SELECT\n", + "# CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + "# ELSE new_case_type \n", + "# END AS \"Case\",\n", + "# Stage,\n", + "# CAST(NULL AS INT) AS Year,\n", + "# CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + "# 'All' AS case_type,\n", + "# 'All' AS law,\n", + "# pet_to_nisi,\n", + "# NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) \n", + "# ORDER BY pet_to_nisi) AS data_half\n", + "\n", + "# FROM fcsq.divorce_fct_nisi\n", + "\n", + "# ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), pet_to_nisi) AS t8\n", + " \n", + "# GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "# ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "# \"\"\"\n", + "# pydb.create_temp_table(create_averages_16_table,'averages_16')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fc72524b-a479-4945-b173-f5b14b9a4498", + "metadata": {}, + "outputs": [], + "source": [ + "#Nisi - Quarterly, without digital/paper split, without law split - averages table\n", + "\n", + "create_averages_16a_table =f\"\"\"\n", + "SELECT \n", + " \"Case\",\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " case_type,\n", + " law,\n", + " count(*) as count,\n", + " ROUND(AVG(pet_to_nisi)/7.0,3) AS mean_weeks,\n", + " ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + " THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END) + MIN(CASE WHEN data_half = 2 THEN pet_to_nisi END)) /2.0 \n", + " ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_nisi END)\n", + " END) / 7.0, 3) AS median_weeks \n", + " \n", + "FROM (\n", + " SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " 'All' AS case_type,\n", + " 'All' AS law,\n", + " pet_to_nisi,\n", + " NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' \n", + " ELSE new_case_type \n", + " END, \n", + " stage, \n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR))\n", + " ORDER BY pet_to_nisi) AS data_half\n", + "\n", + " FROM fcsq.divorce_fct_nisi\n", + " \n", + " WHERE pet_to_nisi >= 0\n", + "\n", + " ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), pet_to_nisi)\n", + " \n", + "GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_16a_table,'averages_16a')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "883f15f1-3c21-4e2a-abfd-0362aa2cc551", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_16b_table =f\"\"\"\n", + "SELECT \n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " 'All' AS case_type,\n", + " 'All' AS law,\n", + " count(*) as count\n", + " \n", + "FROM fcsq.divorce_fct_nisi\n", + "\n", + "WHERE NOT (Year = {next_quarter_year} AND Quarter = {next_quarter})\n", + "\n", + "GROUP BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END,\n", + " Stage,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR));\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_16b_table,'averages_16b')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f52010dd-0a60-42a7-85f1-4c1954046a10", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_16_table =f\"\"\"\n", + "SELECT\n", + " b.*,\n", + " a.mean_weeks,\n", + " a.median_weeks\n", + " \n", + "FROM __temp__.averages_16b AS b\n", + "LEFT JOIN __temp__.averages_16a AS a\n", + " ON a.\"Case\" = b.\"Case\" AND\n", + " a.Stage = b.Stage AND\n", + " a.quarter = b.quarter AND\n", + " a.case_type = b.case_type AND\n", + " a.law=b.law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_16_table,'averages_16')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "908d7f62-d1ae-4c5d-8733-e568fa10f2af", + "metadata": {}, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from __temp__.averages_16\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0285effb-eed7-40f2-a2c7-41fac99ae496", + "metadata": {}, + "outputs": [], + "source": [ + "#Absolute - Annual, with digital/paper split, with law split - averages table\n", + "\n", + "# create_averages_17_table =f\"\"\"\n", + "# SELECT \n", + "# \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# Quarter,\n", + "# case_type,\n", + "# law,\n", + "# count(*) as count,\n", + "# ROUND(AVG(CASE WHEN pet_to_abs >= 0 THEN pet_to_abs END)/7,3) AS mean_weeks,\n", + "# ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + "# THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_abs END) + MIN(CASE WHEN data_half = 2 THEN pet_to_abs END)) /2.0 \n", + "# ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_abs END)\n", + "# END) / 7, 3) AS median_weeks \n", + " \n", + "# FROM (\n", + "# SELECT\n", + "# CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + "# ELSE new_case_type \n", + "# END AS \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# CAST(NULL AS VARCHAR) AS Quarter,\n", + "# digital_paper AS case_type,\n", + "# law,\n", + "# pet_to_abs,\n", + "# NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, digital_paper, law \n", + "# ORDER BY pet_to_abs) AS data_half\n", + "\n", + "# FROM fcsq.divorce_fct_abs\n", + "\n", + "# ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, digital_paper, law, pet_to_abs) AS t9\n", + "\n", + "# GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "# ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "# \"\"\"\n", + "# pydb.create_temp_table(create_averages_17_table,'averages_17')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "da406e9f-9536-4d4e-b2d8-17f65b04bbd1", + "metadata": {}, + "outputs": [], + "source": [ + "#Absolute - Annual, with digital/paper split, with law split - averages table\n", + "\n", + "create_averages_17a_table =f\"\"\"\n", + "SELECT \n", + " \"Case\",\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " case_type,\n", + " law,\n", + " count(*) as count,\n", + " ROUND(AVG(pet_to_abs)/7.0,3) AS mean_weeks,\n", + " ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + " THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_abs END) + MIN(CASE WHEN data_half = 2 THEN pet_to_abs END)) /2.0 \n", + " ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_abs END)\n", + " END) / 7.0, 3) AS median_weeks \n", + " \n", + "FROM (\n", + " SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " digital_paper AS case_type,\n", + " law,\n", + " pet_to_abs,\n", + " NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' \n", + " ELSE new_case_type \n", + " END, \n", + " stage, \n", + " year, \n", + " digital_paper, \n", + " law \n", + " ORDER BY pet_to_abs) AS data_half\n", + "\n", + " FROM fcsq.divorce_fct_abs\n", + " \n", + " WHERE pet_to_abs >= 0\n", + "\n", + " ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, digital_paper, law, pet_to_abs)\n", + " \n", + "GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_17a_table,'averages_17a')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "080d8cf0-3488-4a54-849c-f1cdd5bd9017", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_17b_table =f\"\"\"\n", + "SELECT \n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " digital_paper AS case_type,\n", + " law,\n", + " count(*) as count\n", + " \n", + "FROM fcsq.divorce_fct_abs\n", + "\n", + "WHERE Year <= {annual_year}\n", + "\n", + "GROUP BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END,\n", + " Stage,\n", + " Year,\n", + " digital_paper,\n", + " law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_17b_table,'averages_17b')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2a13140a-e35a-4e03-80d1-3c7b074d1b33", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_17_table =f\"\"\"\n", + "SELECT\n", + " b.*,\n", + " a.mean_weeks,\n", + " a.median_weeks\n", + " \n", + "FROM __temp__.averages_17b AS b\n", + "LEFT JOIN __temp__.averages_17a AS a\n", + " ON a.\"Case\" = b.\"Case\" AND\n", + " a.Stage = b.Stage AND\n", + " a.year = b.year AND\n", + " a.case_type = b.case_type AND\n", + " a.law=b.law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_17_table,'averages_17')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "442a5c53-d7dd-4769-9e27-bdcf65cc2be5", + "metadata": {}, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from __temp__.averages_17\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f3855ac5-1b40-4b67-a422-ff270575209f", + "metadata": {}, + "outputs": [], + "source": [ + "#Absolute - Annual, with digital/paper split, without law split - averages table\n", + "\n", + "# create_averages_18_table =f\"\"\"\n", + "# SELECT \n", + "# \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# Quarter,\n", + "# case_type,\n", + "# law,\n", + "# count(*) as count,\n", + "# ROUND(AVG(CASE WHEN pet_to_abs >= 0 THEN pet_to_abs END)/7,3) AS mean_weeks,\n", + "# ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + "# THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_abs END) + MIN(CASE WHEN data_half = 2 THEN pet_to_abs END)) /2.0 \n", + "# ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_abs END)\n", + "# END) / 7, 3) AS median_weeks \n", + " \n", + "# FROM (\n", + "# SELECT\n", + "# CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + "# ELSE new_case_type \n", + "# END AS \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# CAST(NULL AS VARCHAR) AS Quarter,\n", + "# digital_paper AS case_type,\n", + "# 'All' AS law,\n", + "# pet_to_abs,\n", + "# NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, digital_paper \n", + "# ORDER BY pet_to_abs) AS data_half\n", + "\n", + "# FROM fcsq.divorce_fct_abs\n", + "\n", + "# ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, digital_paper, pet_to_abs) AS t10\n", + "\n", + "# GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "# ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "# \"\"\"\n", + "# pydb.create_temp_table(create_averages_18_table,'averages_18')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7c6af44f-9659-4a0d-b0be-e91edf171139", + "metadata": {}, + "outputs": [], + "source": [ + "#Absolute - Annual, with digital/paper split, without law split - averages table\n", + "\n", + "create_averages_18a_table =f\"\"\"\n", + "SELECT \n", + " \"Case\",\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " case_type,\n", + " law,\n", + " count(*) as count,\n", + " ROUND(AVG(pet_to_abs)/7.0,3) AS mean_weeks,\n", + " ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + " THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_abs END) + MIN(CASE WHEN data_half = 2 THEN pet_to_abs END)) /2.0 \n", + " ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_abs END)\n", + " END) / 7.0, 3) AS median_weeks \n", + " \n", + "FROM (\n", + " SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " digital_paper AS case_type,\n", + " 'All' AS law,\n", + " pet_to_abs,\n", + " NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' \n", + " ELSE new_case_type \n", + " END, \n", + " stage, \n", + " year, \n", + " digital_paper \n", + " ORDER BY pet_to_abs) AS data_half\n", + "\n", + " FROM fcsq.divorce_fct_abs\n", + " \n", + " WHERE pet_to_abs >= 0\n", + "\n", + " ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, digital_paper, pet_to_abs)\n", + " \n", + "GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_18a_table,'averages_18a')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4585baab-65af-4f4f-bf85-b203ae405b10", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_18b_table =f\"\"\"\n", + "SELECT \n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " digital_paper AS case_type,\n", + " 'All' AS law,\n", + " count(*) as count\n", + " \n", + "FROM fcsq.divorce_fct_abs\n", + "\n", + "WHERE Year <= {annual_year}\n", + "\n", + "GROUP BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END,\n", + " Stage,\n", + " Year,\n", + " digital_paper;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_18b_table,'averages_18b')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "186c635a-5c2a-46e4-a9bf-45f929ee1427", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_18_table =f\"\"\"\n", + "SELECT\n", + " b.*,\n", + " a.mean_weeks,\n", + " a.median_weeks\n", + " \n", + "FROM __temp__.averages_18b AS b\n", + "LEFT JOIN __temp__.averages_18a AS a\n", + " ON a.\"Case\" = b.\"Case\" AND\n", + " a.Stage = b.Stage AND\n", + " a.year = b.year AND\n", + " a.case_type = b.case_type AND\n", + " a.law=b.law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_18_table,'averages_18')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7b18989c-29c2-47b0-859b-7c18e09ca777", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from __temp__.averages_18\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c6a218e0-3c78-40b0-a929-5f2b1cff850a", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "#Absolute - Annual, without digital/paper split, with law split - averages table\n", + "\n", + "# create_averages_19_table =f\"\"\"\n", + "# SELECT \n", + "# \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# Quarter,\n", + "# case_type,\n", + "# law,\n", + "# count(*) as count,\n", + "# ROUND(AVG(CASE WHEN pet_to_abs >= 0 THEN pet_to_abs END)/7,3) AS mean_weeks,\n", + "# ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + "# THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_abs END) + MIN(CASE WHEN data_half = 2 THEN pet_to_abs END)) /2.0 \n", + "# ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_abs END)\n", + "# END) / 7, 3) AS median_weeks \n", + " \n", + "# FROM (\n", + "# SELECT\n", + "# CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + "# ELSE new_case_type \n", + "# END AS \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# CAST(NULL AS VARCHAR) AS Quarter,\n", + "# 'All' AS case_type,\n", + "# law,\n", + "# pet_to_abs,\n", + "# NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, law \n", + "# ORDER BY pet_to_abs) AS data_half\n", + "\n", + "# FROM fcsq.divorce_fct_abs\n", + "\n", + "# ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, law, pet_to_abs) AS t11\n", + "\n", + "# GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "# ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "# \"\"\"\n", + "# pydb.create_temp_table(create_averages_19_table,'averages_19')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "56ba4e8c-59ab-40cc-81e1-9f9163a3a983", + "metadata": {}, + "outputs": [], + "source": [ + "#Absolute - Annual, without digital/paper split, with law split - averages table\n", + "\n", + "create_averages_19a_table =f\"\"\"\n", + "SELECT \n", + " \"Case\",\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " case_type,\n", + " law,\n", + " count(*) as count,\n", + " ROUND(AVG(pet_to_abs)/7.0,3) AS mean_weeks,\n", + " ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + " THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_abs END) + MIN(CASE WHEN data_half = 2 THEN pet_to_abs END)) /2.0 \n", + " ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_abs END)\n", + " END) / 7.0, 3) AS median_weeks \n", + " \n", + "FROM (\n", + " SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " 'All' AS case_type,\n", + " law,\n", + " pet_to_abs,\n", + " NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' \n", + " ELSE new_case_type \n", + " END, \n", + " stage, \n", + " year, \n", + " law \n", + " ORDER BY pet_to_abs) AS data_half\n", + "\n", + " FROM fcsq.divorce_fct_abs\n", + " \n", + " WHERE pet_to_abs >= 0\n", + "\n", + " ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, law, pet_to_abs)\n", + " \n", + "GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_19a_table,'averages_19a')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9348338d-9af0-4a51-ade5-4762f0a020bd", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_19b_table =f\"\"\"\n", + "SELECT \n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " 'All' AS case_type,\n", + " law,\n", + " count(*) as count\n", + " \n", + "FROM fcsq.divorce_fct_abs\n", + "\n", + "WHERE Year <= {annual_year}\n", + "\n", + "GROUP BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END,\n", + " Stage,\n", + " Year,\n", + " law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_19b_table,'averages_19b')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0311a240-9b4d-434c-a295-bb187d46c24e", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_19_table =f\"\"\"\n", + "SELECT\n", + " b.*,\n", + " a.mean_weeks,\n", + " a.median_weeks\n", + " \n", + "FROM __temp__.averages_19b AS b\n", + "LEFT JOIN __temp__.averages_19a AS a\n", + " ON a.\"Case\" = b.\"Case\" AND\n", + " a.Stage = b.Stage AND\n", + " a.year = b.year AND\n", + " a.case_type = b.case_type AND\n", + " a.law=b.law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_19_table,'averages_19')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "60cf6d49-8e26-4e3c-a45d-08888292a454", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from __temp__.averages_19\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "275bd08f-f58d-4840-bba2-9fe5e59ea4b6", + "metadata": {}, + "outputs": [], + "source": [ + "#Absolute - Annual, without digital/paper split, without law split - averages table\n", + "\n", + "# create_averages_20_table =f\"\"\"\n", + "# SELECT \n", + "# \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# Quarter,\n", + "# case_type,\n", + "# law,\n", + "# count(*) as count,\n", + "# ROUND(AVG(CASE WHEN pet_to_abs >= 0 THEN pet_to_abs END)/7,3) AS mean_weeks,\n", + "# ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + "# THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_abs END) + MIN(CASE WHEN data_half = 2 THEN pet_to_abs END)) /2.0 \n", + "# ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_abs END)\n", + "# END) / 7, 3) AS median_weeks \n", + " \n", + "# FROM (\n", + "# SELECT\n", + "# CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + "# ELSE new_case_type \n", + "# END AS \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# CAST(NULL AS VARCHAR) AS Quarter,\n", + "# 'All' AS case_type,\n", + "# 'All' AS law,\n", + "# pet_to_abs,\n", + "# NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year \n", + "# ORDER BY pet_to_abs) AS data_half\n", + "\n", + "# FROM fcsq.divorce_fct_abs\n", + "\n", + "# ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, pet_to_abs) AS t12\n", + "\n", + "# GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "# ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "# \"\"\"\n", + "# pydb.create_temp_table(create_averages_20_table,'averages_20')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c1ec5c21-9228-4f46-9706-93b231d5ea6e", + "metadata": {}, + "outputs": [], + "source": [ + "#Absolute - Annual, without digital/paper split, without law split - averages table\n", + "\n", + "create_averages_20a_table =f\"\"\"\n", + "SELECT \n", + " \"Case\",\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " case_type,\n", + " law,\n", + " count(*) as count,\n", + " ROUND(AVG(pet_to_abs)/7.0,3) AS mean_weeks,\n", + " ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + " THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_abs END) + MIN(CASE WHEN data_half = 2 THEN pet_to_abs END)) /2.0 \n", + " ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_abs END)\n", + " END) / 7.0, 3) AS median_weeks \n", + " \n", + "FROM (\n", + " SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " 'All' AS case_type,\n", + " 'All' AS law,\n", + " pet_to_abs,\n", + " NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' \n", + " ELSE new_case_type \n", + " END, \n", + " stage, \n", + " year\n", + " ORDER BY pet_to_abs) AS data_half\n", + "\n", + " FROM fcsq.divorce_fct_abs\n", + " \n", + " WHERE pet_to_abs >= 0\n", + "\n", + " ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, year, pet_to_abs)\n", + " \n", + "GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_20a_table,'averages_20a')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "488d39fe-6bf5-48ea-80b2-3658a7634b92", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_20b_table =f\"\"\"\n", + "SELECT \n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END AS \"Case\",\n", + " Stage,\n", + " Year,\n", + " CAST(NULL AS VARCHAR) AS Quarter,\n", + " 'All' AS case_type,\n", + " 'All' AS law,\n", + " count(*) as count\n", + " \n", + "FROM fcsq.divorce_fct_abs\n", + "\n", + "WHERE Year <= {annual_year}\n", + "\n", + "GROUP BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END,\n", + " Stage,\n", + " Year;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_20b_table,'averages_20b')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "89f4e9ca-d523-4f5c-9f0a-d10573ad1f1a", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_20_table =f\"\"\"\n", + "SELECT\n", + " b.*,\n", + " a.mean_weeks,\n", + " a.median_weeks\n", + " \n", + "FROM __temp__.averages_20b AS b\n", + "LEFT JOIN __temp__.averages_20a AS a\n", + " ON a.\"Case\" = b.\"Case\" AND\n", + " a.Stage = b.Stage AND\n", + " a.year = b.year AND\n", + " a.case_type = b.case_type AND\n", + " a.law=b.law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_20_table,'averages_20')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2a0e959a-1e8e-4a14-8c65-c2780a47f5fa", + "metadata": {}, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from __temp__.averages_20\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5efc0748-854a-47bc-b790-f7ef3801d4b8", + "metadata": {}, + "outputs": [], + "source": [ + "#Absolute - Quarterly, with digital/paper split, with law split - averages table \n", + "\n", + "# create_averages_21_table =f\"\"\"\n", + "# SELECT \n", + "# \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# Quarter,\n", + "# case_type,\n", + "# law,\n", + "# count(*) as count,\n", + "# ROUND(AVG(CASE WHEN pet_to_abs >= 0 THEN pet_to_abs END)/7,3) AS mean_weeks,\n", + "# ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + "# THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_abs END) + MIN(CASE WHEN data_half = 2 THEN pet_to_abs END)) /2.0 \n", + "# ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_abs END)\n", + "# END) / 7, 3) AS median_weeks \n", + " \n", + "# FROM (\n", + "# SELECT\n", + "# CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + "# ELSE new_case_type \n", + "# END AS \"Case\",\n", + "# Stage,\n", + "# CAST(NULL AS INT) AS Year,\n", + "# CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + "# digital_paper AS case_type,\n", + "# law,\n", + "# pet_to_abs,\n", + "# NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), digital_paper, law \n", + "# ORDER BY pet_to_abs) AS data_half\n", + "\n", + "# FROM fcsq.divorce_fct_abs\n", + "\n", + "# ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), digital_paper, law, pet_to_abs) AS t13\n", + "\n", + "# GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "# ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "# \"\"\"\n", + "# pydb.create_temp_table(create_averages_21_table,'averages_21')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c3ceb64e-3fd1-4b69-8b7a-7331bf3c0e72", + "metadata": {}, + "outputs": [], + "source": [ + "#Absolute - Quarterly, with digital/paper split, with law split - averages table \n", + "\n", + "create_averages_21a_table =f\"\"\"\n", + "SELECT \n", + " \"Case\",\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " case_type,\n", + " law,\n", + " count(*) as count,\n", + " ROUND(AVG(pet_to_abs)/7.0,3) AS mean_weeks,\n", + " ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + " THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_abs END) + MIN(CASE WHEN data_half = 2 THEN pet_to_abs END)) /2.0 \n", + " ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_abs END)\n", + " END) / 7.0, 3) AS median_weeks \n", + " \n", + "FROM (\n", + " SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " digital_paper AS case_type,\n", + " law,\n", + " pet_to_abs,\n", + " NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' \n", + " ELSE new_case_type \n", + " END, \n", + " stage, \n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), \n", + " digital_paper, \n", + " law \n", + " ORDER BY pet_to_abs) AS data_half\n", + "\n", + " FROM fcsq.divorce_fct_abs\n", + " \n", + " WHERE pet_to_abs >= 0\n", + "\n", + " ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), digital_paper, law, pet_to_abs)\n", + " \n", + "GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_21a_table,'averages_21a')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c80ab411-9294-4339-a80a-bc9407d0dbc9", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_21b_table =f\"\"\"\n", + "SELECT \n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " digital_paper AS case_type,\n", + " law,\n", + " count(*) as count\n", + " \n", + "FROM fcsq.divorce_fct_abs\n", + "\n", + "WHERE NOT (Year = {next_quarter_year} AND Quarter = {next_quarter})\n", + "\n", + "GROUP BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END,\n", + " Stage,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)),\n", + " digital_paper,\n", + " law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_21b_table,'averages_21b')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2d32b48b-2b7c-4bd0-839a-30fa91520c93", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_21_table =f\"\"\"\n", + "SELECT\n", + " b.*,\n", + " a.mean_weeks,\n", + " a.median_weeks\n", + " \n", + "FROM __temp__.averages_21b AS b\n", + "LEFT JOIN __temp__.averages_21a AS a\n", + " ON a.\"Case\" = b.\"Case\" AND\n", + " a.Stage = b.Stage AND\n", + " a.quarter = b.quarter AND\n", + " a.case_type = b.case_type AND\n", + " a.law=b.law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_21_table,'averages_21')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "549e7d11-9027-4556-b913-ebc6c172d5ec", + "metadata": {}, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from __temp__.averages_21\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3d7dbd15-6a57-48f2-9ba8-d90cf43f421a", + "metadata": {}, + "outputs": [], + "source": [ + "#Absolute - Quarterly, with digital/paper split, without law split - averages table\n", + "\n", + "# create_averages_22_table =f\"\"\"\n", + "# SELECT \n", + "# \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# Quarter,\n", + "# case_type,\n", + "# law,\n", + "# count(*) as count,\n", + "# ROUND(AVG(CASE WHEN pet_to_abs >= 0 THEN pet_to_abs END)/7,3) AS mean_weeks,\n", + "# ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + "# THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_abs END) + MIN(CASE WHEN data_half = 2 THEN pet_to_abs END)) /2.0 \n", + "# ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_abs END)\n", + "# END) / 7, 3) AS median_weeks \n", + " \n", + "# FROM (\n", + "# SELECT\n", + "# CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + "# ELSE new_case_type \n", + "# END AS \"Case\",\n", + "# Stage,\n", + "# CAST(NULL AS INT) AS Year,\n", + "# CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + "# digital_paper AS case_type,\n", + "# 'All' AS law,\n", + "# pet_to_abs,\n", + "# NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), digital_paper \n", + "# ORDER BY pet_to_abs) AS data_half\n", + "\n", + "# FROM fcsq.divorce_fct_abs\n", + "\n", + "# ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), digital_paper, pet_to_abs) AS t14\n", + "\n", + "# GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "# ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "# \"\"\"\n", + "# pydb.create_temp_table(create_averages_22_table,'averages_22')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fa311fa5-d138-42a3-8fbf-8e4e3f885466", + "metadata": {}, + "outputs": [], + "source": [ + "#Absolute - Quarterly, with digital/paper split, without law split - averages table\n", + "\n", + "create_averages_22a_table =f\"\"\"\n", + "SELECT \n", + " \"Case\",\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " case_type,\n", + " law,\n", + " count(*) as count,\n", + " ROUND(AVG(pet_to_abs)/7.0,3) AS mean_weeks,\n", + " ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + " THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_abs END) + MIN(CASE WHEN data_half = 2 THEN pet_to_abs END)) /2.0 \n", + " ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_abs END)\n", + " END) / 7.0, 3) AS median_weeks \n", + " \n", + "FROM (\n", + " SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " digital_paper AS case_type,\n", + " 'All' AS law,\n", + " pet_to_abs,\n", + " NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' \n", + " ELSE new_case_type \n", + " END, \n", + " stage, \n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), \n", + " digital_paper\n", + " ORDER BY pet_to_abs) AS data_half\n", + "\n", + " FROM fcsq.divorce_fct_abs\n", + " \n", + " WHERE pet_to_abs >= 0\n", + "\n", + " ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), digital_paper, pet_to_abs)\n", + " \n", + "GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_22a_table,'averages_22a')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ff21b6cc-bba1-436b-add7-1af72b386dc9", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_22b_table =f\"\"\"\n", + "SELECT \n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " digital_paper AS case_type,\n", + " 'All' AS law,\n", + " count(*) as count\n", + " \n", + "FROM fcsq.divorce_fct_abs\n", + "\n", + "WHERE NOT (Year = {next_quarter_year} AND Quarter = {next_quarter})\n", + "\n", + "GROUP BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END,\n", + " Stage,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)),\n", + " digital_paper;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_22b_table,'averages_22b')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ee4cff29-1b70-4387-8356-ff09f22627cf", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_22_table =f\"\"\"\n", + "SELECT\n", + " b.*,\n", + " a.mean_weeks,\n", + " a.median_weeks\n", + " \n", + "FROM __temp__.averages_22b AS b\n", + "LEFT JOIN __temp__.averages_22a AS a\n", + " ON a.\"Case\" = b.\"Case\" AND\n", + " a.Stage = b.Stage AND\n", + " a.quarter = b.quarter AND\n", + " a.case_type = b.case_type AND\n", + " a.law=b.law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_22_table,'averages_22')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6585a214-2db7-4195-925c-95c95e33e1a1", + "metadata": {}, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from __temp__.averages_22\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "71d0081b-b6f1-4f6e-a957-b3581347f419", + "metadata": {}, + "outputs": [], + "source": [ + "#Absolute - Quarterly, without digital/paper split, with law split - averages table\n", + "\n", + "# create_averages_23_table =f\"\"\"\n", + "# SELECT \n", + "# \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# Quarter,\n", + "# case_type,\n", + "# law,\n", + "# count(*) as count,\n", + "# ROUND(AVG(CASE WHEN pet_to_abs >= 0 THEN pet_to_abs END)/7,3) AS mean_weeks,\n", + "# ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + "# THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_abs END) + MIN(CASE WHEN data_half = 2 THEN pet_to_abs END)) /2.0 \n", + "# ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_abs END)\n", + "# END) / 7, 3) AS median_weeks \n", + " \n", + "# FROM (\n", + "# SELECT\n", + "# CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + "# ELSE new_case_type \n", + "# END AS \"Case\",\n", + "# Stage,\n", + "# CAST(NULL AS INT) AS Year,\n", + "# CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + "# 'All' AS case_type,\n", + "# law,\n", + "# pet_to_abs,\n", + "# NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), law \n", + "# ORDER BY pet_to_abs) AS data_half\n", + "\n", + "# FROM fcsq.divorce_fct_abs\n", + "\n", + "# ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), law, pet_to_abs) AS t15\n", + "\n", + "# GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "# ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "# \"\"\"\n", + "# pydb.create_temp_table(create_averages_23_table,'averages_23')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8af25141-20b5-4802-95a6-fedb398d9c9d", + "metadata": {}, + "outputs": [], + "source": [ + "#Absolute - Quarterly, without digital/paper split, with law split - averages table\n", + "\n", + "create_averages_23a_table =f\"\"\"\n", + "SELECT \n", + " \"Case\",\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " case_type,\n", + " law,\n", + " count(*) as count,\n", + " ROUND(AVG(pet_to_abs)/7.0,3) AS mean_weeks,\n", + " ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + " THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_abs END) + MIN(CASE WHEN data_half = 2 THEN pet_to_abs END)) /2.0 \n", + " ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_abs END)\n", + " END) / 7.0, 3) AS median_weeks \n", + " \n", + "FROM (\n", + " SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " 'All' AS case_type,\n", + " law,\n", + " pet_to_abs,\n", + " NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' \n", + " ELSE new_case_type \n", + " END, \n", + " stage, \n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)),\n", + " law \n", + " ORDER BY pet_to_abs) AS data_half\n", + "\n", + " FROM fcsq.divorce_fct_abs\n", + " \n", + " WHERE pet_to_abs >= 0\n", + "\n", + " ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), law, pet_to_abs)\n", + " \n", + "GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_23a_table,'averages_23a')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5dede3d0-07df-49ed-a851-70da5ebd5837", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_23b_table =f\"\"\"\n", + "SELECT \n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " 'All' AS case_type,\n", + " law,\n", + " count(*) as count\n", + " \n", + "FROM fcsq.divorce_fct_abs\n", + "\n", + "WHERE NOT (Year = {next_quarter_year} AND Quarter = {next_quarter})\n", + "\n", + "GROUP BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END,\n", + " Stage,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)),\n", + " law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_23b_table,'averages_23b')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "097d0569-cb73-47d2-85c8-dbdb849f8e65", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_23_table =f\"\"\"\n", + "SELECT\n", + " b.*,\n", + " a.mean_weeks,\n", + " a.median_weeks\n", + " \n", + "FROM __temp__.averages_23b AS b\n", + "LEFT JOIN __temp__.averages_23a AS a\n", + " ON a.\"Case\" = b.\"Case\" AND\n", + " a.Stage = b.Stage AND\n", + " a.quarter = b.quarter AND\n", + " a.case_type = b.case_type AND\n", + " a.law=b.law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_23_table,'averages_23')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8f41425f-8a7c-4cd6-a442-9962361cb36b", + "metadata": {}, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from __temp__.averages_23\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "afdb662e-2c48-4405-b037-cfb62a71e076", + "metadata": {}, + "outputs": [], + "source": [ + "#Absolute - Quarterly, without digital/paper split, without law split - averages table\n", + "\n", + "# create_averages_24_table =f\"\"\"\n", + "# SELECT \n", + "# \"Case\",\n", + "# Stage,\n", + "# Year,\n", + "# Quarter,\n", + "# case_type,\n", + "# law,\n", + "# count(*) as count,\n", + "# ROUND(AVG(CASE WHEN pet_to_abs >= 0 THEN pet_to_abs END)/7,3) AS mean_weeks,\n", + "# ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + "# THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_abs END) + MIN(CASE WHEN data_half = 2 THEN pet_to_abs END)) /2.0 \n", + "# ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_abs END)\n", + "# END) / 7, 3) AS median_weeks \n", + " \n", + "# FROM (\n", + "# SELECT\n", + "# CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + "# ELSE new_case_type \n", + "# END AS \"Case\",\n", + "# Stage,\n", + "# CAST(NULL AS INT) AS Year,\n", + "# CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + "# 'All' AS case_type,\n", + "# 'All' AS law,\n", + "# pet_to_abs,\n", + "# NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) \n", + "# ORDER BY pet_to_abs) AS data_half\n", + "\n", + "# FROM fcsq.divorce_fct_abs\n", + "\n", + "# ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), pet_to_abs) AS t16\n", + "\n", + "# GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "# ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "\n", + "# \"\"\"\n", + "# pydb.create_temp_table(create_averages_24_table,'averages_24')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bddd162d-a146-4601-be21-714d080ce68c", + "metadata": {}, + "outputs": [], + "source": [ + "#Absolute - Quarterly, without digital/paper split, without law split - averages table\n", + "\n", + "create_averages_24a_table =f\"\"\"\n", + "SELECT \n", + " \"Case\",\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " case_type,\n", + " law,\n", + " count(*) as count,\n", + " ROUND(AVG(pet_to_abs)/7.0,3) AS mean_weeks,\n", + " ROUND((CASE WHEN COUNT(*) % 2 = 0\n", + " THEN (MAX(CASE WHEN data_half = 1 THEN pet_to_abs END) + MIN(CASE WHEN data_half = 2 THEN pet_to_abs END)) /2.0 \n", + " ELSE MAX(CASE WHEN data_half = 1 THEN pet_to_abs END)\n", + " END) / 7.0, 3) AS median_weeks \n", + " \n", + "FROM (\n", + " SELECT\n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce'\n", + " ELSE new_case_type \n", + " END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " 'All' AS case_type,\n", + " 'All' AS law,\n", + " pet_to_abs,\n", + " NTILE(2) OVER (PARTITION BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' \n", + " ELSE new_case_type \n", + " END, \n", + " stage, \n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR))\n", + " ORDER BY pet_to_abs) AS data_half\n", + "\n", + " FROM fcsq.divorce_fct_abs\n", + " \n", + " WHERE pet_to_abs >= 0\n", + "\n", + " ORDER BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END, stage, CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)), pet_to_abs)\n", + " \n", + "GROUP BY \"Case\", Stage, Year, Quarter, case_type, law\n", + "\n", + "ORDER BY \"Case\", Stage, Year, Quarter, case_type, law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_24a_table,'averages_24a')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "499a4e10-f004-4cd2-89bc-454d9cf867ae", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_24b_table =f\"\"\"\n", + "SELECT \n", + " CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END AS \"Case\",\n", + " Stage,\n", + " CAST(NULL AS INT) AS Year,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR)) AS Quarter,\n", + " 'All' AS case_type,\n", + " 'All' AS law,\n", + " count(*) as count\n", + " \n", + "FROM fcsq.divorce_fct_abs\n", + "\n", + "WHERE NOT (Year = {next_quarter_year} AND Quarter = {next_quarter})\n", + "\n", + "GROUP BY CASE WHEN new_case_type IN ('Divorce', 'Civil Partnership') THEN 'Divorce' ELSE new_case_type END,\n", + " Stage,\n", + " CONCAT(CAST(Year AS VARCHAR), ' Q', CAST(Quarter AS VARCHAR));\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_24b_table,'averages_24b')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "758855be-986b-4601-8cab-cc6e4f1e931d", + "metadata": {}, + "outputs": [], + "source": [ + "create_averages_24_table =f\"\"\"\n", + "SELECT\n", + " b.*,\n", + " a.mean_weeks,\n", + " a.median_weeks\n", + " \n", + "FROM __temp__.averages_24b AS b\n", + "LEFT JOIN __temp__.averages_24a AS a\n", + " ON a.\"Case\" = b.\"Case\" AND\n", + " a.Stage = b.Stage AND\n", + " a.quarter = b.quarter AND\n", + " a.case_type = b.case_type AND\n", + " a.law=b.law;\n", + "\"\"\"\n", + "pydb.create_temp_table(create_averages_24_table,'averages_24')\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "32e0f7d4-09b8-4073-b425-7410761524b6", + "metadata": {}, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from __temp__.averages_24 order by 'case', quarter\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "64d1b63b-fdb4-4c6d-ae1d-e84a07b024f5", + "metadata": {}, + "outputs": [], + "source": [ + "#pydb.delete_database_and_data(\"__temp__\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "80479e1c-a676-4081-a10c-c76a9cee14ba", + "metadata": {}, + "outputs": [], + "source": [ + "drop_divorce_timeliness_all = \"DROP TABLE IF EXISTS fcsq.divorce_timeliness_all\"\n", + "pydb.start_query_execution_and_wait(drop_divorce_timeliness_all)\n", + "bucket.objects.filter(Prefix=\"fcsq_processing/Divorce/divorce_timeliness_all\").delete();" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ccf74f28-c261-4e86-8214-5f253e5772a6", + "metadata": {}, + "outputs": [], + "source": [ + "#Creating timeliness table combining all the average tables together \n", + "\n", + "create_divorce_timeliness_all_table =f\"\"\"\n", + "CREATE TABLE IF NOT EXISTS fcsq.divorce_timeliness_all\n", + "WITH (format = 'PARQUET', external_location = 's3://alpha-family-data/fcsq_processing/Divorce/divorce_timeliness_all') AS\n", + "\n", + "SELECT * FROM __temp__.averages_1\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_2\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_3\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_4\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_5\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_6\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_7\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_8\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_9\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_10\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_11\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_12\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_13\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_14\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_15\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_16\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_17\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_18\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_19\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_20\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_21\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_22\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_23\n", + "UNION ALL\n", + "SELECT * FROM __temp__.averages_24\n", + ";\n", + "\"\"\"\n", + "pydb.start_query_execution_and_wait(create_divorce_timeliness_all_table)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "297f152a-1a90-41cd-bd87-e8b92b5684a2", + "metadata": {}, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from fcsq.divorce_timeliness_all LIMIT 10\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "57e357d1-a15e-4965-a9fe-88a5438f9372", + "metadata": {}, + "outputs": [], + "source": [ + "#pydb.delete_table_and_data(database=\"__temp__\", table=\"divorce_timeliness_all\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5249fd40-c163-4e12-bf62-ac3f1e7ac23b", + "metadata": {}, + "outputs": [], + "source": [ + "drop_divorce_fcsq_t12 = \"DROP TABLE IF EXISTS fcsq.divorce_fcsq_t12\"\n", + "pydb.start_query_execution_and_wait(drop_divorce_fcsq_t12)\n", + "bucket.objects.filter(Prefix=\"fcsq_processing/Divorce/divorce_fcsq_t12\").delete();" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a684da44-8414-44ad-9128-81133c68cf03", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "create_divorce_fcsq_t12_table =f\"\"\"\n", + "CREATE TABLE IF NOT EXISTS fcsq.divorce_fcsq_t12\n", + "WITH (format = 'PARQUET', external_location = 's3://alpha-family-data/fcsq_processing/Divorce/divorce_fcsq_t12') AS\n", + "\n", + "SELECT \"Case\",\n", + " Stage,\n", + " Year,\n", + " Quarter,\n", + " case_type,\n", + " Law,\n", + " Count,\n", + " CASE WHEN \"Case\" in ('Nullity of Marriage', 'Judicial Separation') THEN NULL \n", + " ELSE mean_weeks\n", + " END AS mean_weeks,\n", + " CASE WHEN \"Case\" in ('Nullity of Marriage', 'Judicial Separation') THEN NULL \n", + " ELSE median_weeks\n", + " END AS median_weeks\n", + " \n", + "FROM fcsq.divorce_timeliness_all\n", + "\n", + "WHERE YEAR > 2002\n", + "OR CAST(SUBSTR(Quarter,1,4) AS INT) > 2002;\n", + "\"\"\"\n", + "pydb.start_query_execution_and_wait(create_divorce_fcsq_t12_table)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a09a21bd-51f6-42ac-804c-5ba081c020ed", + "metadata": {}, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from fcsq.divorce_fcsq_t12 LIMIT 10\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d00be01b-60dd-448d-98bb-fbcbc2b5a7b2", + "metadata": {}, + "outputs": [], + "source": [ + "df = pydb.read_sql_query(\"select * from fcsq.divorce_fcsq_t12;\")\n", + "df.to_csv(path_or_buf = 's3://alpha-family-data/fcsq_processing/Divorce/sdp_process/divorce_fcsq_t12.csv',index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dfce8765-647b-4459-a8e8-2262ad06f0a4", + "metadata": {}, + "outputs": [], + "source": [ + "drop_divorce_fcsq_digt = \"DROP TABLE IF EXISTS fcsq.divorce_fcsq_digt\"\n", + "pydb.start_query_execution_and_wait(drop_divorce_fcsq_digt)\n", + "bucket.objects.filter(Prefix=\"fcsq_processing/Divorce/divorce_fcsq_digt\").delete();" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "507bf7fa-c184-4967-891d-e2684802003a", + "metadata": {}, + "outputs": [], + "source": [ + "create_divorce_fcsq_digt_table =f\"\"\"\n", + "CREATE TABLE IF NOT EXISTS fcsq.divorce_fcsq_digt\n", + "WITH (format = 'PARQUET', external_location = 's3://alpha-family-data/fcsq_processing/Divorce/divorce_fcsq_digt') AS\n", + "SELECT Stage, \n", + " Year, \n", + " Quarter, \n", + " Case_Type, \n", + " Law, Count, \n", + " Mean_Weeks, \n", + " Median_Weeks\n", + " \n", + "FROM fcsq.divorce_fcsq_t12\n", + "\n", + "WHERE \"Case\" = 'Divorce';\n", + "\"\"\"\n", + "pydb.start_query_execution_and_wait(create_divorce_fcsq_digt_table)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "27865324-b5b3-404c-a575-59c3f6aeef85", + "metadata": {}, + "outputs": [], + "source": [ + "# test = pydb.read_sql_query(\"SELECT * from fcsq.divorce_fcsq_digt LIMIT 10\")\n", + "# test" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "94a9a5ca-c456-4895-9f85-bb8c34829ce5", + "metadata": {}, + "outputs": [], + "source": [ + "df = pydb.read_sql_query(\"select * from fcsq.divorce_fcsq_digt;\")\n", + "df.to_csv(path_or_buf = 's3://alpha-family-data/fcsq_processing/Divorce/sdp_process/divorce_fcsq_digt.csv',index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "164c3b79-820c-4f50-86c7-6c79b4526238", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "divorce_test_kernel", + "language": "python", + "name": "divorce_test_project" + }, + "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.9.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/data/divorce/.ipynb_checkpoints/07_divorce_dashboard_output_creation-checkpoint.ipynb b/data/divorce/.ipynb_checkpoints/07_divorce_dashboard_output_creation-checkpoint.ipynb new file mode 100644 index 0000000..bd0707f --- /dev/null +++ b/data/divorce/.ipynb_checkpoints/07_divorce_dashboard_output_creation-checkpoint.ipynb @@ -0,0 +1,467 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "aa72fff3-6d42-45fa-8150-25435c0aac71", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd # a module which provides the data structures and functions to store and manipulate tables in dataframes\n", + "import pydbtools as pydb # A module which allows SQL queries to be run on the Analytical Platform from Python, see https://github.com/moj-analytical-services/pydbtools\n", + "import boto3 # allows you to directly create, update, and delete AWS resources from Python scripts\n", + "\n", + "# sets parameters to view dataframes for tables easier\n", + "pd.set_option(\"display.max_columns\", 100)\n", + "pd.set_option(\"display.width\", 900)\n", + "pd.set_option(\"display.max_colwidth\", 200)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7d409d17-edb0-4a3d-99f0-84d86819814d", + "metadata": {}, + "outputs": [], + "source": [ + "# import awswrangler as wr\n", + "\n", + "# create_dimdateextract_lookup_table = pd.read_csv(\"s3://alpha-family-data/fcsq_processing/lookups/DimDateExtract.csv\", low_memory=False)\n", + "\n", + "# wr.s3.to_csv(\n", + "# df=create_dimdateextract_lookup_table,\n", + "# path=\"s3://alpha-family-data/fcsq_processing/lookups/DimDateExtract.csv\",\n", + "# index=False,\n", + "# dataset=True,\n", + "# database=\"fcsq\",\n", + "# table=\"dim_date_extract\",\n", + "# mode=\"overwrite\"\n", + "# )" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5d1d2585-25ef-4cf3-b01b-676e9b34ca08", + "metadata": {}, + "outputs": [], + "source": [ + "#abs_weekly_breakdown" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ce5a9ba3-16b7-47b6-bad0-a8427d4c2627", + "metadata": {}, + "outputs": [], + "source": [ + "SELECT CAST(SUBSTRING(d.weekbegindate,1,10) AS VARCHAR) AS value,\n", + " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + " 'Weekly' AS period,\n", + " 'Final Orders' AS type,\n", + " a.digital_paper,\n", + " a.proceeding_type,\n", + " a.law,\n", + " a.nfd_app_type,\n", + " a.new_case_type,\n", + " count(*) AS count,\n", + " SUM (CASE WHEN a.pet_to_abs >= 0 THEN a.pet_to_abs end) as total_pet_to_abs\n", + " \n", + "FROM fcsq.divorce_fct_abs AS a\n", + "INNER JOIN fcsq.dim_date_extract AS d \n", + " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + " \n", + "WHERE d.yearmo between 202301 AND 202412\n", + "\n", + "GROUP BY CAST(SUBSTRING(d.weekbegindate,1,10) AS VARCHAR), CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "\n", + "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", + "\n", + "UNION ALL\n", + "\n", + "SELECT CAST(d.monyydate AS VARCHAR) AS value,\n", + " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + " 'Monthly' AS period,\n", + " 'Final Orders' AS type,\n", + " a.digital_paper,\n", + " a.proceeding_type,\n", + " a.law,\n", + " a.nfd_app_type,\n", + " a.new_case_type,\n", + " count(*) AS count,\n", + " SUM (CASE WHEN a.pet_to_abs >= 0 THEN a.pet_to_abs end) as total_pet_to_abs\n", + " \n", + "FROM fcsq.divorce_fct_abs AS a\n", + "INNER JOIN fcsq.dim_date_extract AS d \n", + " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + " \n", + "WHERE d.yearmo between 202301 AND 202412\n", + "\n", + "GROUP BY CAST(d.monyydate AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "\n", + "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", + "\n", + "UNION ALL\n", + "\n", + "SELECT CAST(d.fiscalyearquarter AS VARCHAR) AS value,\n", + " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + " 'Quarter (FY)' AS period,\n", + " 'Final Orders' AS type,\n", + " a.digital_paper,\n", + " a.proceeding_type,\n", + " a.law,\n", + " a.nfd_app_type,\n", + " a.new_case_type,\n", + " count(*) AS count,\n", + " SUM (CASE WHEN a.pet_to_abs >= 0 THEN a.pet_to_abs end) as total_pet_to_abs\n", + " \n", + "FROM fcsq.divorce_fct_abs AS a\n", + "INNER JOIN fcsq.dim_date_extract AS d \n", + " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + " \n", + "WHERE d.yearmo between 202301 AND 202412\n", + "\n", + "GROUP BY CAST(d.fiscalyearquarter AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "\n", + "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", + "\n", + "UNION ALL\n", + "\n", + "SELECT CAST (d.yearquarter AS VARCHAR) AS value,\n", + " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + " 'Quarter (Cal Year)' AS period,\n", + " 'Final Orders' AS type,\n", + " a.digital_paper,\n", + " a.proceeding_type,\n", + " a.law,\n", + " a.nfd_app_type,\n", + " a.new_case_type,\n", + " count(*) AS count,\n", + " SUM (CASE WHEN a.pet_to_abs >= 0 THEN a.pet_to_abs end) as total_pet_to_abs\n", + " \n", + "FROM fcsq.divorce_fct_abs AS a\n", + "INNER JOIN fcsq.dim_date_extract AS d \n", + " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + " \n", + "WHERE d.yearmo between 202301 AND 202412\n", + "\n", + "GROUP BY CAST (d.yearquarter AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "\n", + "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", + "\n", + "UNION ALL\n", + "\n", + "SELECT CAST(d.year AS VARCHAR) AS value,\n", + " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + " 'Year' AS period,\n", + " 'Final Orders' AS type,\n", + " a.digital_paper,\n", + " a.proceeding_type,\n", + " a.law,\n", + " a.nfd_app_type,\n", + " a.new_case_type,\n", + " count(*) AS count,\n", + " SUM (CASE WHEN a.pet_to_abs >= 0 THEN a.pet_to_abs end) as total_pet_to_abs\n", + " \n", + "FROM fcsq.divorce_fct_abs AS a\n", + "INNER JOIN fcsq.dim_date_extract AS d \n", + " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + " \n", + "WHERE d.yearmo between 202301 AND 202412\n", + "\n", + "GROUP BY CAST(d.year AS VARCHAR), CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "\n", + "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8827397e-2679-4b8d-b779-4d422dd24c1d", + "metadata": {}, + "outputs": [], + "source": [ + "#nisi_weekly breakdown" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2c94b92b-710a-43e7-8991-77f4c244c119", + "metadata": {}, + "outputs": [], + "source": [ + "SELECT CAST(SUBSTRING(d.weekbegindate,1,10) AS VARCHAR) AS value,\n", + " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + " 'Weekly' AS period,\n", + " 'Conditional Orders' AS type,\n", + " a.digital_paper,\n", + " a.proceeding_type,\n", + " a.law,\n", + " a.nfd_app_type,\n", + " a.new_case_type,\n", + " count(*) AS count,\n", + " SUM (CASE WHEN a.pet_to_nisi >= 0 THEN a.pet_to_nisi end) as total_pet_to_nisi\n", + " \n", + "FROM fcsq.divorce_fct_nisi AS a\n", + "INNER JOIN fcsq.dim_date_extract AS d \n", + " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + " \n", + "WHERE d.yearmo between 202301 AND 202412\n", + "\n", + "GROUP BY CAST(SUBSTRING(d.weekbegindate,1,10) AS VARCHAR), CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "\n", + "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", + "\n", + "UNION ALL\n", + "\n", + "SELECT CAST(d.monyydate AS VARCHAR) AS value,\n", + " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + " 'Monthly' AS period,\n", + " 'Conditional Orders' AS type,\n", + " a.digital_paper,\n", + " a.proceeding_type,\n", + " a.law,\n", + " a.nfd_app_type,\n", + " a.new_case_type,\n", + " count(*) AS count,\n", + " SUM (CASE WHEN a.pet_to_nisi >= 0 THEN a.pet_to_nisi end) as total_pet_to_nisi\n", + " \n", + "FROM fcsq.divorce_fct_nisi AS a\n", + "INNER JOIN fcsq.dim_date_extract AS d \n", + " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + " \n", + "WHERE d.yearmo between 202301 AND 202412\n", + "\n", + "GROUP BY CAST(d.monyydate AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "\n", + "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", + "\n", + "UNION ALL\n", + "\n", + "SELECT CAST(d.fiscalyearquarter AS VARCHAR) AS value,\n", + " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + " 'Quarter (FY)' AS period,\n", + " 'Conditional Orders' AS type,\n", + " a.digital_paper,\n", + " a.proceeding_type,\n", + " a.law,\n", + " a.nfd_app_type,\n", + " a.new_case_type,\n", + " count(*) AS count,\n", + " SUM (CASE WHEN a.pet_to_nisi >= 0 THEN a.pet_to_nisi end) as total_pet_to_nisi\n", + " \n", + "FROM fcsq.divorce_fct_nisi AS a\n", + "INNER JOIN fcsq.dim_date_extract AS d \n", + " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + " \n", + "WHERE d.yearmo between 202301 AND 202412\n", + "\n", + "GROUP BY CAST(d.fiscalyearquarter AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "\n", + "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", + "\n", + "UNION ALL\n", + "\n", + "SELECT CAST (d.yearquarter AS VARCHAR) AS value,\n", + " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + " 'Quarter (Cal Year)' AS period,\n", + " 'Conditional Orders' AS type,\n", + " a.digital_paper,\n", + " a.proceeding_type,\n", + " a.law,\n", + " a.nfd_app_type,\n", + " a.new_case_type,\n", + " count(*) AS count,\n", + " SUM (CASE WHEN a.pet_to_nisi >= 0 THEN a.pet_to_nisi end) as total_pet_to_nisi\n", + " \n", + "FROM fcsq.divorce_fct_nisi AS a\n", + "INNER JOIN fcsq.dim_date_extract AS d \n", + " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + " \n", + "WHERE d.yearmo between 202301 AND 202412\n", + "\n", + "GROUP BY CAST (d.yearquarter AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "\n", + "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", + "\n", + "UNION ALL\n", + "\n", + "SELECT CAST(d.year AS VARCHAR) AS value,\n", + " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + " 'Year' AS period,\n", + " 'Conditional Orders' AS type,\n", + " a.digital_paper,\n", + " a.proceeding_type,\n", + " a.law,\n", + " a.nfd_app_type,\n", + " a.new_case_type,\n", + " count(*) AS count,\n", + " SUM (CASE WHEN a.pet_to_nisi >= 0 THEN a.pet_to_nisi end) as total_pet_to_nisi\n", + " \n", + "FROM fcsq.divorce_fct_nisi AS a\n", + "INNER JOIN fcsq.dim_date_extract AS d \n", + " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + " \n", + "WHERE d.yearmo between 202301 AND 202412\n", + "\n", + "GROUP BY CAST(d.year AS VARCHAR), CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "\n", + "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "03802f07-f83b-4c74-950a-f900915b655d", + "metadata": {}, + "outputs": [], + "source": [ + "#weekly breakdown" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b077384e-1686-46ae-8191-0dd989812785", + "metadata": {}, + "outputs": [], + "source": [ + "SELECT CAST(SUBSTRING(d.weekbegindate,1,10) AS VARCHAR) AS value,\n", + " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + " 'Weekly' AS period,\n", + " 'Applications' AS type,\n", + " a.digital_paper,\n", + " a.proceeding_type,\n", + " a.law,\n", + " a.nfd_app_type,\n", + " a.new_case_type,\n", + " count(*) AS count\n", + " \n", + "FROM fcsq.divorce_fct_petitions AS a\n", + "INNER JOIN fcsq.dim_date_extract AS d \n", + " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + " \n", + "WHERE d.yearmo between 202301 AND 202412\n", + "\n", + "GROUP BY CAST(SUBSTRING(d.weekbegindate,1,10) AS VARCHAR), CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "\n", + "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", + "\n", + "UNION ALL\n", + "\n", + "SELECT CAST(d.monyydate AS VARCHAR) AS value,\n", + " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + " 'Monthly' AS period,\n", + " 'Applications' AS type,\n", + " a.digital_paper,\n", + " a.proceeding_type,\n", + " a.law,\n", + " a.nfd_app_type,\n", + " a.new_case_type,\n", + " count(*) AS count\n", + " \n", + "FROM fcsq.divorce_fct_petitions AS a\n", + "INNER JOIN fcsq.dim_date_extract AS d \n", + " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + " \n", + "WHERE d.yearmo between 202301 AND 202412\n", + "\n", + "GROUP BY CAST(d.monyydate AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "\n", + "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", + "\n", + "UNION ALL\n", + "\n", + "SELECT CAST(d.fiscalyearquarter AS VARCHAR) AS value,\n", + " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + " 'Quarter (FY)' AS period,\n", + " 'Applications' AS type,\n", + " a.digital_paper,\n", + " a.proceeding_type,\n", + " a.law,\n", + " a.nfd_app_type,\n", + " a.new_case_type,\n", + " count(*) AS count\n", + " \n", + "FROM fcsq.divorce_fct_petitions AS a\n", + "INNER JOIN fcsq.dim_date_extract AS d \n", + " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + " \n", + "WHERE d.yearmo between 202301 AND 202412\n", + "\n", + "GROUP BY CAST(d.fiscalyearquarter AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "\n", + "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", + "\n", + "UNION ALL\n", + "\n", + "SELECT CAST (d.yearquarter AS VARCHAR) AS value,\n", + " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + " 'Quarter (Cal Year)' AS period,\n", + " 'Applications' AS type,\n", + " a.digital_paper,\n", + " a.proceeding_type,\n", + " a.law,\n", + " a.nfd_app_type,\n", + " a.new_case_type,\n", + " count(*) AS count\n", + " \n", + "FROM fcsq.divorce_fct_petitions AS a\n", + "INNER JOIN fcsq.dim_date_extract AS d \n", + " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + " \n", + "WHERE d.yearmo between 202301 AND 202412\n", + "\n", + "GROUP BY CAST (d.yearquarter AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "\n", + "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", + "\n", + "UNION ALL\n", + "\n", + "SELECT CAST(d.year AS VARCHAR) AS value,\n", + " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + " 'Year' AS period,\n", + " 'Applications' AS type,\n", + " a.digital_paper,\n", + " a.proceeding_type,\n", + " a.law,\n", + " a.nfd_app_type,\n", + " a.new_case_type,\n", + " count(*) AS count\n", + " \n", + "FROM fcsq.divorce_fct_petitions AS a\n", + "INNER JOIN fcsq.dim_date_extract AS d \n", + " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + " \n", + "WHERE d.yearmo between 202301 AND 202412\n", + "\n", + "GROUP BY CAST(d.year AS VARCHAR), CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "\n", + "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "divorce_test_kernel", + "language": "python", + "name": "divorce_test_project" + }, + "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.9.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/data/divorce/07_divorce_dashboard_output_creation.ipynb b/data/divorce/07_divorce_dashboard_output_creation.ipynb index bd0707f..b528378 100644 --- a/data/divorce/07_divorce_dashboard_output_creation.ipynb +++ b/data/divorce/07_divorce_dashboard_output_creation.ipynb @@ -56,8 +56,8 @@ "metadata": {}, "outputs": [], "source": [ - "SELECT CAST(SUBSTRING(d.weekbegindate,1,10) AS VARCHAR) AS value,\n", - " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + "SELECT CAST(d.first_day_of_week AS VARCHAR) AS value,\n", + " d.date_name AS date_key,\n", " 'Weekly' AS period,\n", " 'Final Orders' AS type,\n", " a.digital_paper,\n", @@ -69,19 +69,19 @@ " SUM (CASE WHEN a.pet_to_abs >= 0 THEN a.pet_to_abs end) as total_pet_to_abs\n", " \n", "FROM fcsq.divorce_fct_abs AS a\n", - "INNER JOIN fcsq.dim_date_extract AS d \n", - " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + "INNER JOIN common_lookup.dim_date AS d \n", + " ON CAST(a.event_date AS DATE) = d.date_name\n", " \n", - "WHERE d.yearmo between 202301 AND 202412\n", + "WHERE d.calendar_year_month between '2003-01' AND '2025-06'\n", "\n", - "GROUP BY CAST(SUBSTRING(d.weekbegindate,1,10) AS VARCHAR), CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "GROUP BY CAST(d.first_day_of_week AS VARCHAR), d.date_name, a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", "\n", "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", "\n", "UNION ALL\n", "\n", - "SELECT CAST(d.monyydate AS VARCHAR) AS value,\n", - " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + "SELECT DATE_FORMAT(DATE_PARSE(d.month_name || ' ' || CAST(d.calendar_year AS VARCHAR), '%M %Y'), '%b-%y') AS value,\n", + " d.date_name AS date_key,\n", " 'Monthly' AS period,\n", " 'Final Orders' AS type,\n", " a.digital_paper,\n", @@ -93,19 +93,19 @@ " SUM (CASE WHEN a.pet_to_abs >= 0 THEN a.pet_to_abs end) as total_pet_to_abs\n", " \n", "FROM fcsq.divorce_fct_abs AS a\n", - "INNER JOIN fcsq.dim_date_extract AS d \n", - " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + "INNER JOIN common_lookup.dim_date AS d\n", + " ON CAST(a.event_date AS DATE) = d.date_name\n", " \n", - "WHERE d.yearmo between 202301 AND 202412\n", + "WHERE d.calendar_year_month between '2003-01' AND '2025-06'\n", "\n", - "GROUP BY CAST(d.monyydate AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "GROUP BY DATE_FORMAT(DATE_PARSE(d.month_name || ' ' || CAST(d.calendar_year AS VARCHAR), '%M %Y'), '%b-%y'),d.date_name, a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", "\n", "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", "\n", "UNION ALL\n", "\n", - "SELECT CAST(d.fiscalyearquarter AS VARCHAR) AS value,\n", - " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + "SELECT CAST(SUBSTRING(d.fiscal_year_qtr, 3, 4) || '-' || SUBSTRING(d.fiscal_year_qtr, 10) AS VARCHAR) AS value,\n", + " d.date_name AS date_key,\n", " 'Quarter (FY)' AS period,\n", " 'Final Orders' AS type,\n", " a.digital_paper,\n", @@ -117,19 +117,19 @@ " SUM (CASE WHEN a.pet_to_abs >= 0 THEN a.pet_to_abs end) as total_pet_to_abs\n", " \n", "FROM fcsq.divorce_fct_abs AS a\n", - "INNER JOIN fcsq.dim_date_extract AS d \n", - " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + "INNER JOIN common_lookup.dim_date AS d\n", + " ON CAST(a.event_date AS DATE) = d.date_name\n", " \n", - "WHERE d.yearmo between 202301 AND 202412\n", + "WHERE d.calendar_year_month between '2003-01' AND '2025-06'\n", "\n", - "GROUP BY CAST(d.fiscalyearquarter AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "GROUP BY CAST(SUBSTRING(d.fiscal_year_qtr, 3, 4) || '-' || SUBSTRING(d.fiscal_year_qtr, 10) AS VARCHAR), d.date_name, a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", "\n", "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", "\n", "UNION ALL\n", "\n", - "SELECT CAST (d.yearquarter AS VARCHAR) AS value,\n", - " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + "SELECT CAST(d.calendar_year_qtr AS VARCHAR) AS value,\n", + " d.date_name AS date_key,\n", " 'Quarter (Cal Year)' AS period,\n", " 'Final Orders' AS type,\n", " a.digital_paper,\n", @@ -141,19 +141,19 @@ " SUM (CASE WHEN a.pet_to_abs >= 0 THEN a.pet_to_abs end) as total_pet_to_abs\n", " \n", "FROM fcsq.divorce_fct_abs AS a\n", - "INNER JOIN fcsq.dim_date_extract AS d \n", - " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + "INNER JOIN common_lookup.dim_date AS d\n", + " ON CAST(a.event_date AS DATE) = d.date_name\n", " \n", - "WHERE d.yearmo between 202301 AND 202412\n", + "WHERE d.calendar_year_month between '2003-01' AND '2025-06'\n", "\n", - "GROUP BY CAST (d.yearquarter AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "GROUP BY CAST(d.calendar_year_qtr AS VARCHAR), d.date_name, a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", "\n", "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", "\n", "UNION ALL\n", "\n", - "SELECT CAST(d.year AS VARCHAR) AS value,\n", - " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + "SELECT CAST(d.calendar_year AS VARCHAR) AS value,\n", + " d.date_name AS date_key,\n", " 'Year' AS period,\n", " 'Final Orders' AS type,\n", " a.digital_paper,\n", @@ -165,12 +165,12 @@ " SUM (CASE WHEN a.pet_to_abs >= 0 THEN a.pet_to_abs end) as total_pet_to_abs\n", " \n", "FROM fcsq.divorce_fct_abs AS a\n", - "INNER JOIN fcsq.dim_date_extract AS d \n", - " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + "INNER JOIN common_lookup.dim_date AS d\n", + " ON CAST(a.event_date AS DATE) = d.date_name\n", " \n", - "WHERE d.yearmo between 202301 AND 202412\n", + "WHERE d.calendar_year_month between '2003-01' AND '2025-06'\n", "\n", - "GROUP BY CAST(d.year AS VARCHAR), CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "GROUP BY CAST(d.calendar_year AS VARCHAR), d.date_name, a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", "\n", "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)" ] @@ -192,8 +192,8 @@ "metadata": {}, "outputs": [], "source": [ - "SELECT CAST(SUBSTRING(d.weekbegindate,1,10) AS VARCHAR) AS value,\n", - " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + "SELECT CAST(d.first_day_of_week AS VARCHAR) AS value,\n", + " d.date_name AS date_key,\n", " 'Weekly' AS period,\n", " 'Conditional Orders' AS type,\n", " a.digital_paper,\n", @@ -205,19 +205,19 @@ " SUM (CASE WHEN a.pet_to_nisi >= 0 THEN a.pet_to_nisi end) as total_pet_to_nisi\n", " \n", "FROM fcsq.divorce_fct_nisi AS a\n", - "INNER JOIN fcsq.dim_date_extract AS d \n", - " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + "INNER JOIN common_lookup.dim_date AS d \n", + " ON CAST(a.event_date AS DATE) = d.date_name\n", " \n", - "WHERE d.yearmo between 202301 AND 202412\n", + "WHERE d.calendar_year_month between '2003-01' AND '2025-06'\n", "\n", - "GROUP BY CAST(SUBSTRING(d.weekbegindate,1,10) AS VARCHAR), CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "GROUP BY CAST(d.first_day_of_week AS VARCHAR), d.date_name, a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", "\n", "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", "\n", "UNION ALL\n", "\n", - "SELECT CAST(d.monyydate AS VARCHAR) AS value,\n", - " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + "SELECT DATE_FORMAT(DATE_PARSE(d.month_name || ' ' || CAST(d.calendar_year AS VARCHAR), '%M %Y'), '%b-%y') AS value,\n", + " d.date_name AS date_key,\n", " 'Monthly' AS period,\n", " 'Conditional Orders' AS type,\n", " a.digital_paper,\n", @@ -229,19 +229,19 @@ " SUM (CASE WHEN a.pet_to_nisi >= 0 THEN a.pet_to_nisi end) as total_pet_to_nisi\n", " \n", "FROM fcsq.divorce_fct_nisi AS a\n", - "INNER JOIN fcsq.dim_date_extract AS d \n", - " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + "INNER JOIN common_lookup.dim_date AS d\n", + " ON CAST(a.event_date AS DATE) = d.date_name\n", " \n", - "WHERE d.yearmo between 202301 AND 202412\n", + "WHERE d.calendar_year_month between '2003-01' AND '2025-06'\n", "\n", - "GROUP BY CAST(d.monyydate AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "GROUP BY DATE_FORMAT(DATE_PARSE(d.month_name || ' ' || CAST(d.calendar_year AS VARCHAR), '%M %Y'), '%b-%y'), d.date_name, a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", "\n", "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", "\n", "UNION ALL\n", "\n", - "SELECT CAST(d.fiscalyearquarter AS VARCHAR) AS value,\n", - " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + "SELECT CAST(SUBSTRING(d.fiscal_year_qtr, 3, 4) || '-' || SUBSTRING(d.fiscal_year_qtr, 10) AS VARCHAR) AS value,\n", + " d.date_name AS date_key,\n", " 'Quarter (FY)' AS period,\n", " 'Conditional Orders' AS type,\n", " a.digital_paper,\n", @@ -253,19 +253,19 @@ " SUM (CASE WHEN a.pet_to_nisi >= 0 THEN a.pet_to_nisi end) as total_pet_to_nisi\n", " \n", "FROM fcsq.divorce_fct_nisi AS a\n", - "INNER JOIN fcsq.dim_date_extract AS d \n", - " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + "INNER JOIN common_lookup.dim_date AS d\n", + " ON CAST(a.event_date AS DATE) = d.date_name\n", " \n", - "WHERE d.yearmo between 202301 AND 202412\n", + "WHERE d.calendar_year_month between '2003-01' AND '2025-06'\n", "\n", - "GROUP BY CAST(d.fiscalyearquarter AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "GROUP BY CAST(SUBSTRING(d.fiscal_year_qtr, 3, 4) || '-' || SUBSTRING(d.fiscal_year_qtr, 10) AS VARCHAR), d.date_name, a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", "\n", "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", "\n", "UNION ALL\n", "\n", - "SELECT CAST (d.yearquarter AS VARCHAR) AS value,\n", - " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + "SELECT CAST(d.calendar_year_qtr AS VARCHAR) AS value,\n", + " d.date_name AS date_key,\n", " 'Quarter (Cal Year)' AS period,\n", " 'Conditional Orders' AS type,\n", " a.digital_paper,\n", @@ -277,19 +277,19 @@ " SUM (CASE WHEN a.pet_to_nisi >= 0 THEN a.pet_to_nisi end) as total_pet_to_nisi\n", " \n", "FROM fcsq.divorce_fct_nisi AS a\n", - "INNER JOIN fcsq.dim_date_extract AS d \n", - " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + "INNER JOIN common_lookup.dim_date AS d\n", + " ON CAST(a.event_date AS DATE) = d.date_name\n", " \n", - "WHERE d.yearmo between 202301 AND 202412\n", + "WHERE d.calendar_year_month between '2003-01' AND '2025-06'\n", "\n", - "GROUP BY CAST (d.yearquarter AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "GROUP BY CAST(d.calendar_year_qtr AS VARCHAR), d.date_name, a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", "\n", "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", "\n", "UNION ALL\n", "\n", - "SELECT CAST(d.year AS VARCHAR) AS value,\n", - " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + "SELECT CAST(d.calendar_year AS VARCHAR) AS value,\n", + " d.date_name AS date_key,\n", " 'Year' AS period,\n", " 'Conditional Orders' AS type,\n", " a.digital_paper,\n", @@ -301,12 +301,12 @@ " SUM (CASE WHEN a.pet_to_nisi >= 0 THEN a.pet_to_nisi end) as total_pet_to_nisi\n", " \n", "FROM fcsq.divorce_fct_nisi AS a\n", - "INNER JOIN fcsq.dim_date_extract AS d \n", - " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + "INNER JOIN common_lookup.dim_date AS d\n", + " ON CAST(a.event_date AS DATE) = d.date_name\n", " \n", - "WHERE d.yearmo between 202301 AND 202412\n", + "WHERE d.calendar_year_month between '2003-01' AND '2025-06'\n", "\n", - "GROUP BY CAST(d.year AS VARCHAR), CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "GROUP BY CAST(d.calendar_year AS VARCHAR), d.date_name, a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", "\n", "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)" ] @@ -328,8 +328,8 @@ "metadata": {}, "outputs": [], "source": [ - "SELECT CAST(SUBSTRING(d.weekbegindate,1,10) AS VARCHAR) AS value,\n", - " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + "SELECT CAST(d.first_day_of_week AS VARCHAR) AS value,\n", + " d.date_name AS date_key,\n", " 'Weekly' AS period,\n", " 'Applications' AS type,\n", " a.digital_paper,\n", @@ -340,19 +340,19 @@ " count(*) AS count\n", " \n", "FROM fcsq.divorce_fct_petitions AS a\n", - "INNER JOIN fcsq.dim_date_extract AS d \n", - " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + "INNER JOIN common_lookup.dim_date AS d \n", + " ON CAST(a.event_date AS DATE) = d.date_name\n", " \n", - "WHERE d.yearmo between 202301 AND 202412\n", + "WHERE d.calendar_year_month between '2003-01' AND '2025-06'\n", "\n", - "GROUP BY CAST(SUBSTRING(d.weekbegindate,1,10) AS VARCHAR), CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "GROUP BY CAST(d.first_day_of_week AS VARCHAR), d.date_name, a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", "\n", "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", "\n", "UNION ALL\n", "\n", - "SELECT CAST(d.monyydate AS VARCHAR) AS value,\n", - " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + "SELECT DATE_FORMAT(DATE_PARSE(d.month_name || ' ' || CAST(d.calendar_year AS VARCHAR), '%M %Y'), '%b-%y') AS value,\n", + " d.date_name AS date_key,\n", " 'Monthly' AS period,\n", " 'Applications' AS type,\n", " a.digital_paper,\n", @@ -363,19 +363,19 @@ " count(*) AS count\n", " \n", "FROM fcsq.divorce_fct_petitions AS a\n", - "INNER JOIN fcsq.dim_date_extract AS d \n", - " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + "INNER JOIN common_lookup.dim_date AS d\n", + " ON CAST(a.event_date AS DATE) = d.date_name\n", " \n", - "WHERE d.yearmo between 202301 AND 202412\n", + "WHERE d.calendar_year_month between '2003-01' AND '2025-06'\n", "\n", - "GROUP BY CAST(d.monyydate AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "GROUP BY DATE_FORMAT(DATE_PARSE(d.month_name || ' ' || CAST(d.calendar_year AS VARCHAR), '%M %Y'), '%b-%y'), d.date_name, a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", "\n", "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", "\n", "UNION ALL\n", "\n", - "SELECT CAST(d.fiscalyearquarter AS VARCHAR) AS value,\n", - " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + "SELECT CAST(SUBSTRING(d.fiscal_year_qtr, 3, 4) || '-' || SUBSTRING(d.fiscal_year_qtr, 10) AS VARCHAR) AS value,\n", + " d.date_name AS date_key,\n", " 'Quarter (FY)' AS period,\n", " 'Applications' AS type,\n", " a.digital_paper,\n", @@ -386,19 +386,19 @@ " count(*) AS count\n", " \n", "FROM fcsq.divorce_fct_petitions AS a\n", - "INNER JOIN fcsq.dim_date_extract AS d \n", - " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + "INNER JOIN common_lookup.dim_date AS d\n", + " ON CAST(a.event_date AS DATE) = d.date_name\n", " \n", - "WHERE d.yearmo between 202301 AND 202412\n", + "WHERE d.calendar_year_month between '2003-01' AND '2025-06'\n", "\n", - "GROUP BY CAST(d.fiscalyearquarter AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "GROUP BY CAST(SUBSTRING(d.fiscal_year_qtr, 3, 4) || '-' || SUBSTRING(d.fiscal_year_qtr, 10) AS VARCHAR), d.date_name, a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", "\n", "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", "\n", "UNION ALL\n", "\n", - "SELECT CAST (d.yearquarter AS VARCHAR) AS value,\n", - " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + "SELECT CAST(d.calendar_year_qtr AS VARCHAR) AS value,\n", + " d.date_name AS date_key,\n", " 'Quarter (Cal Year)' AS period,\n", " 'Applications' AS type,\n", " a.digital_paper,\n", @@ -409,19 +409,19 @@ " count(*) AS count\n", " \n", "FROM fcsq.divorce_fct_petitions AS a\n", - "INNER JOIN fcsq.dim_date_extract AS d \n", - " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + "INNER JOIN common_lookup.dim_date AS d\n", + " ON CAST(a.event_date AS DATE) = d.date_name\n", " \n", - "WHERE d.yearmo between 202301 AND 202412\n", + "WHERE d.calendar_year_month between '2003-01' AND '2025-06'\n", "\n", - "GROUP BY CAST (d.yearquarter AS VARCHAR),CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "GROUP BY CAST(d.calendar_year_qtr AS VARCHAR), d.date_name, a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", "\n", "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)\n", "\n", "UNION ALL\n", "\n", - "SELECT CAST(d.year AS VARCHAR) AS value,\n", - " CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE) AS date_key,\n", + "SELECT CAST(d.calendar_year AS VARCHAR) AS value,\n", + " d.date_name AS date_key,\n", " 'Year' AS period,\n", " 'Applications' AS type,\n", " a.digital_paper,\n", @@ -432,12 +432,12 @@ " count(*) AS count\n", " \n", "FROM fcsq.divorce_fct_petitions AS a\n", - "INNER JOIN fcsq.dim_date_extract AS d \n", - " ON CAST(a.event_date AS DATE) = DATE_PARSE(d.datekey, '%Y-%m-%d %H:%i:%s.%f')\n", + "INNER JOIN common_lookup.dim_date AS d\n", + " ON CAST(a.event_date AS DATE) = d.date_name\n", " \n", - "WHERE d.yearmo between 202301 AND 202412\n", + "WHERE d.calendar_year_month between '2003-01' AND '2025-06'\n", "\n", - "GROUP BY CAST(d.year AS VARCHAR), CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE), a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", + "GROUP BY CAST(d.calendar_year AS VARCHAR), d.date_name, a.digital_paper, a.proceeding_type, a.law, a.nfd_app_type, a.new_case_type\n", "\n", "--ORDER BY CAST(DATE_PARSE(d.weekbegindate, '%Y-%m-%d %H:%i:%s.%f') AS DATE)" ]