/* Given the following database schema: */
CREATE TABLE sqlite_sequence(name,seq)

CREATE TABLE "essays"
(
    projectid         TEXT,
    teacher_acctid    TEXT,
    title             TEXT,
    short_description TEXT,
    need_statement    TEXT,
    essay             TEXT
)

CREATE TABLE "projects"
(
    projectid                              TEXT not null
        primary key,
    teacher_acctid                         TEXT,
    schoolid                               TEXT,
    school_ncesid                          TEXT,
    school_latitude                        REAL,
    school_longitude                       REAL,
    school_city                            TEXT,
    school_state                           TEXT,
    school_zip                             INTEGER,
    school_metro                           TEXT,
    school_district                        TEXT,
    school_county                          TEXT,
    school_charter                         TEXT,
    school_magnet                          TEXT,
    school_year_round                      TEXT,
    school_nlns                            TEXT,
    school_kipp                            TEXT,
    school_charter_ready_promise           TEXT,
    teacher_prefix                         TEXT,
    teacher_teach_for_america              TEXT,
    teacher_ny_teaching_fellow             TEXT,
    primary_focus_subject                  TEXT,
    primary_focus_area                     TEXT,
    secondary_focus_subject                TEXT,
    secondary_focus_area                   TEXT,
    resource_type                          TEXT,
    poverty_level                          TEXT,
    grade_level                            TEXT,
    fulfillment_labor_materials            REAL,
    total_price_excluding_optional_support REAL,
    total_price_including_optional_support REAL,
    students_reached                       INTEGER,
    eligible_double_your_impact_match      TEXT,
    eligible_almost_home_match             TEXT,
    date_posted                            DATE
)

CREATE TABLE donations
(
    donationid                               TEXT not null
            primary key,
    projectid                               TEXT,
    donor_acctid                             TEXT,
    donor_city                               TEXT,
    donor_state                              TEXT,
    donor_zip                                TEXT,
    is_teacher_acct                          TEXT,
    donation_timestamp                       DATETIME,
    donation_to_project                      REAL,
    donation_optional_support                REAL,
    donation_total                           REAL,
    dollar_amount                            TEXT,
    donation_included_optional_support       TEXT,
    payment_method                           TEXT,
    payment_included_acct_credit             TEXT,
    payment_included_campaign_gift_card      TEXT,
    payment_included_web_purchased_gift_card TEXT,
    payment_was_promo_matched                TEXT,
    via_giving_page                          TEXT,
    for_honoree                              TEXT,
    donation_message                         TEXT,
    foreign key (projectid) references projects(projectid)
)

CREATE TABLE resources
(
    resourceid            TEXT not null
            primary key,
    projectid             TEXT,
    vendorid              INTEGER,
    vendor_name           TEXT,
    project_resource_type TEXT,
    item_name             TEXT,
    item_number           TEXT,
    item_unit_price       REAL,
    item_quantity         INTEGER,
    foreign key (projectid) references projects(projectid)
)

/* Answer the following: From which state do the 5 biggest donor, who gave the highest cost of optional support, come from? List their donor_acctid and calculate for their average cost of optional support for every donations they make and identtify the project's type of resource to which they gave the hightest optional support. which state refers to school_state; highest cost of optional support refers to max(donation_optional_support); average cost of optional support = avg(donation_optional_support) */
SELECT 
SELECT T1.school_state, T2.donor_acctid, AVG(T2.donation_optional_support), T1.resource_type FROM projects AS T1 INNER JOIN donations AS T2 ON T1.projectid = T2.projectid ORDER BY T2.donation_optional_support DESC LIMIT 5