Skip to content
(SQL) Project: Analyze International Debt Statistics
  • AI Chat
  • Code
  • Report
  • It's not that we humans only take debts to manage our necessities. A country may also take debt to manage its economy. For example, infrastructure spending is one costly ingredient required for a country's citizens to lead comfortable lives. The World Bank is the organization that provides debt to countries.

    In this notebook, we are going to analyze international debt data collected by The World Bank. The dataset contains information about the amount of debt (in USD) owed by developing countries across several categories. We are going to find the answers to questions like:

    • What is the total amount of debt that is owed by the countries listed in the dataset?
    • Which country owns the maximum amount of debt and what does that amount look like?
    • What is the average amount of debt owed by countries across different debt indicators?

    Below is a snapshot of the database you will be working with:

    country_namecountry_codeindicator_nameindicator_codedebt
    AfghanistanAFG"Disbursements on external debt, long-term (DIS, current US$)"DT.DIS.DLXF.CD72894453.7
    AfghanistanAFG"Interest payments on external debt, long-term (INT, current US$)"DT.INT.DLXF.CD53239440.1
    AfghanistanAFG"PPG, bilateral (AMT, current US$)"DT.AMT.BLAT.CD61739336.9
    AfghanistanAFG"PPG, bilateral (DIS, current US$)"DT.DIS.BLAT.CD49114729.4
    AfghanistanAFG"PPG, bilateral (INT, current US$)"DT.INT.BLAT.CD39903620.1
    AfghanistanAFG"PPG, multilateral (AMT, current US$)"DT.AMT.MLAT.CD39107845
    AfghanistanAFG"PPG, multilateral (DIS, current US$)"DT.DIS.MLAT.CD23779724.3
    AfghanistanAFG"PPG, multilateral (INT, current US$)"DT.INT.MLAT.CD13335820
    AfghanistanAFG"PPG, official creditors (AMT, current US$)"DT.AMT.OFFT.CD100847181.9
    AfghanistanAFG"PPG, official creditors (DIS, current US$)"DT.DIS.OFFT.CD72894453.7

    You will execute SQL queries to answer six questions, as listed in the instructions.

    Spinner
    DataFrameavailable as
    df
    variable
    SELECT * FROM international_debt
    Spinner
    DataFrameavailable as
    num_distinct_countries
    variable
    --num_distinct_countries
    SELECT COUNT(DISTINCT country_name) AS num_distinct_countries
    FROM international_debt
    Spinner
    DataFrameavailable as
    distinct_debt_indicators
    variable
    --distinct_debt_indicators
    SELECT DISTINCT indicator_name AS distinct_debt_indicators
    FROM international_debt
    Spinner
    DataFrameavailable as
    total_debt
    variable
    --total_debt
    SELECT ROUND(SUM(debt)/1000000, 2) AS total_debt
    FROM international_debt
    Spinner
    DataFrameavailable as
    highest_debt_country
    variable
    --highest_debt_country
    SELECT country_name, SUM(debt) AS total_debt
    FROM international_debt
    GROUP BY country_name
    ORDER BY total_debt DESC
    LIMIT 1
    Spinner
    DataFrameavailable as
    avg_debt_per_indicator
    variable
    --avg_debt_per_indicator
    SELECT indicator_code AS debt_indicator, indicator_name, AVG(debt) AS average_debt
    FROM international_debt
    GROUP BY debt_indicator, indicator_name
    ORDER BY average_debt DESC
    Spinner
    DataFrameavailable as
    highest_principal_repayment
    variable
    --highest_principal_repayment
    SELECT country_name, indicator_name
    FROM international_debt
    WHERE debt = (SELECT MAX(debt)
    			 FROM international_debt
    			 WHERE indicator_code = 'DT.AMT.DLXF.CD')
    Spinner
    DataFrameavailable as
    df2
    variable
    SELECT country_name, debt, indicator_name, indicator_code
    FROM international_debt
    WHERE debt = (SELECT MAX(debt)
    			 FROM international_debt
    			 WHERE indicator_code = 'DT.AMT.DLXF.CD')
    Spinner
    DataFrameavailable as
    df3
    variable
    SELECT country_name, debt, indicator_name, indicator_code
    FROM international_debt
    WHERE country_name = 'Indonesia'
    Spinner
    DataFrameavailable as
    df4
    variable
    SELECT country_name, SUM(debt) AS total_debt
    FROM international_debt
    WHERE country_name = 'Indonesia'
    GROUP BY country_name
    Spinner
    DataFrameavailable as
    df1
    variable
    --highest_principal_repayment
    SELECT country_name, MAX(debt) AS max_debt, indicator_name AS highest_principal_repayment
    FROM international_debt
    WHERE indicator_code = 'DT.AMT.DLXF.CD'
    GROUP BY country_name, highest_principal_repayment
    ORDER BY max_debt DESC