Database schema:

CREATE TABLE bool (
	name TEXT DEFAULT '' NOT NULL -- example: ['neg', 'pos'],
	PRIMARY KEY (name)
)


CREATE TABLE disabled (
	name TEXT DEFAULT '' NOT NULL -- example: ['student114', 'student125'],
	PRIMARY KEY (name), 
	CONSTRAINT fk_disabled_person FOREIGN KEY(name) REFERENCES person (name)
)


CREATE TABLE enlist (
	name TEXT NOT NULL -- example: ['student51', 'student40'],
	organ TEXT NOT NULL -- example: ['fire_department', 'air_force'],
	CONSTRAINT fk_enlist_person FOREIGN KEY(name) REFERENCES person (name)
)


CREATE TABLE enrolled (
	name TEXT NOT NULL -- example: ['student1', 'student10'],
	school TEXT NOT NULL -- example: ['smc', 'occ'],
	month INTEGER DEFAULT 0 NOT NULL -- example: ['2', '1'],
	PRIMARY KEY (name, school), 
	CONSTRAINT fk_enrolled_person FOREIGN KEY(name) REFERENCES person (name)
)


CREATE TABLE filed_for_bankrupcy (
	name TEXT DEFAULT '' NOT NULL -- example: ['student126', 'student122'],
	PRIMARY KEY (name), 
	CONSTRAINT fk_filed_for_bankrupcy_person FOREIGN KEY(name) REFERENCES person (name)
)


CREATE TABLE longest_absense_from_school (
	name TEXT DEFAULT '' NOT NULL -- example: ['student1', 'student10'],
	month INTEGER DEFAULT 0 -- example: ['0', '1'],
	PRIMARY KEY (name), 
	CONSTRAINT fk_longest_absense_from_school_person FOREIGN KEY(name) REFERENCES person (name)
)


CREATE TABLE male (
	name TEXT DEFAULT '' NOT NULL -- example: ['student1', 'student101'],
	PRIMARY KEY (name), 
	CONSTRAINT fk_male_person FOREIGN KEY(name) REFERENCES person (name)
)


CREATE TABLE no_payment_due (
	name TEXT DEFAULT '' NOT NULL -- example: ['student1', 'student10'],
	bool TEXT -- example: ['neg', 'pos'],
	PRIMARY KEY (name), 
	CONSTRAINT fk_no_payment_due_person FOREIGN KEY(name) REFERENCES person (name),
	CONSTRAINT fk_no_payment_due_bool FOREIGN KEY(bool) REFERENCES bool (name)
)


CREATE TABLE person (
	name TEXT DEFAULT '' NOT NULL -- example: ['student1', 'student10'],
	PRIMARY KEY (name)
)


CREATE TABLE unemployed (
	name TEXT DEFAULT '' NOT NULL -- example: ['student102', 'student1000'],
	PRIMARY KEY (name), 
	CONSTRAINT fk_unemployed_person FOREIGN KEY(name) REFERENCES person (name)
)

Question: Calculate the percentage of female students.
Evidence: percentage = CONCAT(DIVIDE(MULTIPLY(COUNT(person.name which is not in male.name)), 100), COUNT(person.name that is IN male.name),'%'); female students refers to person.name who are NOT in male.name;

SQL:
SELECT CAST(SUM(IIF(T2.name IS NULL, 1, 0)) AS REAL) * 100 / COUNT(T1.name) FROM person AS T1 LEFT JOIN male AS T2 ON T2.name = T1.name