/* Given the following database schema: */
CREATE TABLE current
(
    ballotpedia_id      TEXT,
    bioguide_id         TEXT,
    birthday_bio        DATE,
    cspan_id            REAL,
    fec_id              TEXT,
    first_name          TEXT,
    gender_bio          TEXT,
    google_entity_id_id TEXT,
    govtrack_id         INTEGER,
    house_history_id    REAL,
    icpsr_id            REAL,
    last_name           TEXT,
    lis_id              TEXT,
    maplight_id         REAL,
    middle_name         TEXT,
    nickname_name       TEXT,
    official_full_name  TEXT,
    opensecrets_id      TEXT,
    religion_bio        TEXT,
    suffix_name         TEXT,
    thomas_id           INTEGER,
    votesmart_id        REAL,
    wikidata_id         TEXT,
    wikipedia_id        TEXT,
        primary key (bioguide_id, cspan_id)
)

CREATE TABLE "current-terms"
(
    address            TEXT,
    bioguide           TEXT,
    caucus             TEXT,
    chamber            TEXT,
    class              REAL,
    contact_form       TEXT,
    district           REAL,
    end                TEXT,
    fax                TEXT,
    last               TEXT,
    name               TEXT,
    office             TEXT,
    party              TEXT,
    party_affiliations TEXT,
    phone              TEXT,
    relation           TEXT,
    rss_url            TEXT,
    start              TEXT,
    state              TEXT,
    state_rank         TEXT,
    title              TEXT,
    type               TEXT,
    url                TEXT,
    primary key (bioguide, end),
    foreign key (bioguide) references current(bioguide_id)
)

CREATE TABLE historical
(
    ballotpedia_id             TEXT,
    bioguide_id                TEXT
            primary key,
    bioguide_previous_id       TEXT,
    birthday_bio               TEXT,
    cspan_id                   TEXT,
    fec_id                     TEXT,
    first_name                 TEXT,
    gender_bio                 TEXT,
    google_entity_id_id        TEXT,
    govtrack_id                INTEGER,
    house_history_alternate_id TEXT,
    house_history_id           REAL,
    icpsr_id                   REAL,
    last_name                  TEXT,
    lis_id                     TEXT,
    maplight_id                TEXT,
    middle_name                TEXT,
    nickname_name              TEXT,
    official_full_name         TEXT,
    opensecrets_id             TEXT,
    religion_bio               TEXT,
    suffix_name                TEXT,
    thomas_id                  TEXT,
    votesmart_id               TEXT,
    wikidata_id                TEXT,
    wikipedia_id               TEXT
)

CREATE TABLE "historical-terms"
(
    address            TEXT,
    bioguide           TEXT
            primary key,
    chamber            TEXT,
    class              REAL,
    contact_form       TEXT,
    district           REAL,
    end                TEXT,
    fax                TEXT,
    last               TEXT,
    middle             TEXT,
    name               TEXT,
    office             TEXT,
    party              TEXT,
    party_affiliations TEXT,
    phone              TEXT,
    relation           TEXT,
    rss_url            TEXT,
    start              TEXT,
    state              TEXT,
    state_rank         TEXT,
    title              TEXT,
    type               TEXT,
    url                TEXT,
    foreign key (bioguide) references historical(bioguide_id)
)

CREATE TABLE "social-media"
(
    bioguide     TEXT
            primary key,
    facebook     TEXT,
    facebook_id  REAL,
    govtrack     REAL,
    instagram    TEXT,
    instagram_id REAL,
    thomas       INTEGER,
    twitter      TEXT,
    twitter_id   REAL,
    youtube      TEXT,
    youtube_id   TEXT,
    foreign key (bioguide) references current(bioguide_id)
)

/* Answer the following: Among all the current legislators who have served for more than 4 terms, what is the percentage of them being female? have served for more than 4 years refers to count(bioguide) > 4; percentage = MULTIPLY(DIVIDE(SUM(gender_bio = 'F'), count(bioguide)), 100.0); female refers to gender_bio = 'F' */
SELECT 
SELECT CAST(SUM(CASE WHEN gender_bio = 'F' THEN 1 ELSE 0 END) AS REAL) * 100 / COUNT(T3.bioguide) FROM ( SELECT T2.bioguide, T1.gender_bio FROM current AS T1 INNER JOIN `current-terms` AS T2 ON T1.bioguide_id = T2.bioguide GROUP BY T2.bioguide HAVING COUNT(T2.bioguide) > 4 ) T3