This is the file for an interactive dashboard created from a data sample of almost 1.5k respondents on salary and saving dynamic in Ghana. The primary place of the exercise was on Twitter. The results were shared via a spreadsheet and the analysis and further breakdown and interactive daashboard was developed.
In the repo you will find the f103.sql file. Download the file and import it into your preferred Oracle apex setup. The raw data in excel format can be uploaded and stored in the schema.
This is the list of all the queries used for the interactive dashboard.
SELECT AGE, OWN_A_CAR,
COUNT(*) AS TOTAL_COUNT,
COUNT(*)/ SUM(COUNT(*)) OVER (PARTITION BY AGE) AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY AGE, OWN_A_CAR
ORDER BY AGE
SELECT TAKE_HOME_RANGE, OWN_A_CAR,
COUNT(*) AS TOTAL_COUNT,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY TAKE_HOME_RANGE) AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY TAKE_HOME_RANGE, OWN_A_CAR
ORDER BY TAKE_HOME_RANGE
SELECT MONTHS_EXPENSES_SAVED, OWN_A_CAR,
COUNT(*) AS TOTAL_COUNT,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY MONTHS_EXPENSES_SAVED) AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY MONTHS_EXPENSES_SAVED, OWN_A_CAR
ORDER BY MONTHS_EXPENSES_SAVED
SELECT MONEY_SAVED_UP, OWN_A_CAR,
COUNT(*) AS TOTAL_COUNT,COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY MONEY_SAVED_UP) AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY MONEY_SAVED_UP, OWN_A_CAR
ORDER BY MONEY_SAVED_UP
SELECT TAKE_HOME_RANGE, SOURCE_OF_INCOME, TOTAL_COUNT, PERCENTAGE
FROM (SELECT TAKE_HOME_RANGE, SOURCE_OF_INCOME, COUNT(*) AS TOTAL_COUNT,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY SOURCE_OF_INCOME) AS PERCENTAGE,
1 AS sort_order
FROM CEDITALK_SURVEY
WHERE SOURCE_OF_INCOME = 'Abroad'
GROUP BY TAKE_HOME_RANGE, SOURCE_OF_INCOME
UNION ALL
SELECT TAKE_HOME_RANGE, SOURCE_OF_INCOME, COUNT(*) AS TOTAL_COUNT,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY SOURCE_OF_INCOME) AS PERCENTAGE,
2 AS sort_order
FROM CEDITALK_SURVEY
WHERE SOURCE_OF_INCOME = 'Ghana-Based'
GROUP BY TAKE_HOME_RANGE, SOURCE_OF_INCOME) sub
ORDER BY sort_order, TAKE_HOME_RANGE ASC
SELECT TAKE_HOME_RANGE, COUNT(*) AS TOTAL_COUNT,
COUNT(*) / (SELECT COUNT(*) FROM CEDITALK_SURVEY ) AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY TAKE_HOME_RANGE
ORDER BY PERCENTAGE
SELECT TAKE_HOME_RANGE,SECTOR_OF_WORK,
COUNT(*) AS TOTAL_COUNT,COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY SECTOR_OF_WORK) AS PERCENTAGE
FROM CEDITALK_SURVEY where SECTOR_OF_WORK ='Public Sector'
GROUP BY TAKE_HOME_RANGE,SECTOR_OF_WORK
ORDER BY TAKE_HOME_RANGE
SELECT TAKE_HOME_RANGE,SECTOR_OF_WORK,
COUNT(*) AS TOTAL_COUNT,COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY SECTOR_OF_WORK) AS PERCENTAGE
FROM CEDITALK_SURVEY where SECTOR_OF_WORK ='Private Sector'
GROUP BY TAKE_HOME_RANGE,SECTOR_OF_WORK
ORDER BY TAKE_HOME_RANGE
SELECT TAKE_HOME_RANGE, TYPE_OF_EMPLOYMENT,
COUNT(*) AS TOTAL_COUNT,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY TYPE_OF_EMPLOYMENT) AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY TAKE_HOME_RANGE, TYPE_OF_EMPLOYMENT
ORDER BY TAKE_HOME_RANGE, TYPE_OF_EMPLOYMENT
SELECT TAKE_HOME_RANGE,EDUCATIONAL_LEVEL,
COUNT(*) AS TOTAL_COUNT,COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY EDUCATIONAL_LEVEL) AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY TAKE_HOME_RANGE,EDUCATIONAL_LEVEL
ORDER BY EDUCATIONAL_LEVEL
SELECT MONTHS_EXPENSES_SAVED, COUNT(*) AS TOTAL_COUNT,
COUNT(*) / (SELECT COUNT(*) FROM CEDITALK_SURVEY ) AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY MONTHS_EXPENSES_SAVED
ORDER BY PERCENTAGE
SELECT MONEY_SAVED_UP, COUNT(*) AS TOTAL_COUNT,
COUNT(*) / (SELECT COUNT(*) FROM CEDITALK_SURVEY ) AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY MONEY_SAVED_UP
ORDER BY PERCENTAGE
SELECT TAKE_HOME_RANGE, MONEY_SAVED_UP,
COUNT(*) AS TOTAL_COUNT,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY TAKE_HOME_RANGE) AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY TAKE_HOME_RANGE, MONEY_SAVED_UP
ORDER BY TAKE_HOME_RANGE
SELECT AGE, MONEY_SAVED_UP,
COUNT(*) AS TOTAL_COUNT,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY AGE) AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY AGE, MONEY_SAVED_UP
ORDER BY AGE, MONEY_SAVED_UP
SELECT MONTHS_EXPENSES_SAVED, TYPE_OF_EMPLOYMENT,
COUNT(*) AS TOTAL_COUNT,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY TYPE_OF_EMPLOYMENT) AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY MONTHS_EXPENSES_SAVED, TYPE_OF_EMPLOYMENT
ORDER BY TYPE_OF_EMPLOYMENT
SELECT MONTHS_EXPENSES_SAVED, TAKE_HOME_RANGE,
COUNT(*) AS TOTAL_COUNT,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY TAKE_HOME_RANGE) AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY MONTHS_EXPENSES_SAVED, TAKE_HOME_RANGE
ORDER BY MONTHS_EXPENSES_SAVED, TAKE_HOME_RANGE
SELECT MONEY_SAVED_UP,GENDER,
COUNT(*) AS TOTAL_COUNT,COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY GENDER) AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY MONEY_SAVED_UP,GENDER
ORDER BY MONEY_SAVED_UP,GENDER
SELECT INDUSTRY, COUNT(*) AS TOTAL_COUNT,
COUNT(*) / (SELECT COUNT(*) FROM CEDITALK_SURVEY) AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY INDUSTRY
HAVING COUNT(*) > 0
ORDER BY PERCENTAGE
SELECT TAKE_HOME_RANGE,INDUSTRY,
COUNT(*) AS TOTAL_COUNT,COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY INDUSTRY) AS PERCENTAGE
FROM CEDITALK_SURVEY WHERE INDUSTRY = :P8_INDUSTRY
GROUP BY TAKE_HOME_RANGE,INDUSTRY
ORDER BY TAKE_HOME_RANGE ASC
SELECT MONEY_SAVED_UP,INDUSTRY,
COUNT(*) AS TOTAL_COUNT,COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY INDUSTRY) AS PERCENTAGE
FROM CEDITALK_SURVEY WHERE INDUSTRY = :P8_INDUSTRY_1
GROUP BY MONEY_SAVED_UP,INDUSTRY
ORDER BY MONEY_SAVED_UP ASC
SELECT MONEY_SAVED_UP,
AGE,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY AGE) AS AGE_PERCENTAGE
FROM CEDITALK_SURVEY WHERE AGE = :P13_AGE_RANGE
GROUP BY MONEY_SAVED_UP, AGE
ORDER BY MONEY_SAVED_UP
SELECT MONEY_SAVED_UP,
GENDER,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY GENDER) AS PERCENTAGE
FROM CEDITALK_SURVEY WHERE GENDER = :P13_GENDER
GROUP BY MONEY_SAVED_UP, GENDER
ORDER BY MONEY_SAVED_UP
SELECT MONEY_SAVED_UP,
MARITAL_STATUS,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY MARITAL_STATUS) AS PERCENTAGE
FROM CEDITALK_SURVEY WHERE MARITAL_STATUS = :P13_MARITAL_STATUS
GROUP BY MONEY_SAVED_UP, MARITAL_STATUS
ORDER BY MONEY_SAVED_UP
SELECT MONEY_SAVED_UP,
NUMBER_OF_DEPENDENTS,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY NUMBER_OF_DEPENDENTS) AS PERCENTAGE
FROM CEDITALK_SURVEY WHERE NUMBER_OF_DEPENDENTS = :P13_NUMBER_OF_DEPENDENTS
GROUP BY MONEY_SAVED_UP, NUMBER_OF_DEPENDENTS
ORDER BY MONEY_SAVED_UP
SELECT MONEY_SAVED_UP,
EDUCATIONAL_LEVEL,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY EDUCATIONAL_LEVEL) AS PERCENTAGE
FROM CEDITALK_SURVEY WHERE EDUCATIONAL_LEVEL = :P13_EDUCATIONAL_LEVEL
GROUP BY MONEY_SAVED_UP, EDUCATIONAL_LEVEL
ORDER BY MONEY_SAVED_UP
SELECT TAKE_HOME_RANGE,
AGE,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY AGE) AS PERCENTAGE
FROM CEDITALK_SURVEY WHERE AGE = :P14_AGE_RANGE
GROUP BY TAKE_HOME_RANGE, AGE
ORDER BY TAKE_HOME_RANGE
SELECT TAKE_HOME_RANGE,
GENDER,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY GENDER) AS PERCENTAGE
FROM CEDITALK_SURVEY WHERE GENDER = :P14_GENDER
GROUP BY TAKE_HOME_RANGE, GENDER
ORDER BY TAKE_HOME_RANGE
SELECT TAKE_HOME_RANGE,
MARITAL_STATUS,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY MARITAL_STATUS) AS PERCENTAGE
FROM CEDITALK_SURVEY WHERE MARITAL_STATUS = :P14_MARITAL_STATUS
GROUP BY TAKE_HOME_RANGE, MARITAL_STATUS
ORDER BY TAKE_HOME_RANGE
SELECT TAKE_HOME_RANGE,
NUMBER_OF_DEPENDENTS,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY NUMBER_OF_DEPENDENTS) AS PERCENTAGE
FROM CEDITALK_SURVEY WHERE NUMBER_OF_DEPENDENTS = :P14_NUMBER_OF_DEPENDENTS
GROUP BY TAKE_HOME_RANGE,NUMBER_OF_DEPENDENTS
ORDER BY TAKE_HOME_RANGE
SELECT TAKE_HOME_RANGE,
EDUCATIONAL_LEVEL,
COUNT(*) / SUM(COUNT(*)) OVER (PARTITION BY EDUCATIONAL_LEVEL) AS PERCENTAGE
FROM CEDITALK_SURVEY WHERE EDUCATIONAL_LEVEL = :P14_EDUCATIONAL_LEVEL
GROUP BY TAKE_HOME_RANGE,EDUCATIONAL_LEVEL
ORDER BY TAKE_HOME_RANGE
SELECT AGE,
COUNT(*) AS COUNT,
COUNT(*) / SUM(COUNT(*)) OVER () AS AGE_PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY AGE
SELECT GENDER,
COUNT(*) AS COUNT,
COUNT(*) / SUM(COUNT(*)) OVER () AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY GENDER
SELECT MARITAL_STATUS,
COUNT(*) AS COUNT,
COUNT(*) / SUM(COUNT(*)) OVER () AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY MARITAL_STATUS
SELECT NUMBER_OF_DEPENDENTS,
COUNT(*) AS COUNT,
COUNT(*) / SUM(COUNT(*)) OVER () AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY NUMBER_OF_DEPENDENTS
SELECT EDUCATIONAL_LEVEL,
COUNT(*) AS COUNT,
COUNT(*) / SUM(COUNT(*)) OVER () AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY EDUCATIONAL_LEVEL
SELECT BASED_REGION,
COUNT(*) AS COUNT,
COUNT(*) / SUM(COUNT(*)) OVER () AS PERCENTAGE
FROM CEDITALK_SURVEY
GROUP BY BASED_REGION