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 average duration of absense of disabled male students.
Evidence: average duration = DIVIDE(SUM(month), COUNT(month)); duration of absence refers to month; disabled male students refers to disabled.name who are IN male.name;

SQL:
SELECT AVG(T1.month) FROM longest_absense_from_school AS T1 INNER JOIN disabled AS T2 ON T2.name = T1.name INNER JOIN male AS T3 ON T3.name = T2.name