### Database Schema:
CREATE TABLE connected (
	atom_id	TEXT	NOT NULL	PRIMARY KEY,
	atom_id2	TEXT	NOT NULL	PRIMARY KEY,
	bond_id	TEXT	NULL	DEFAULT NULL,
	foreign key (atom_id2) references atom (atom_id),
	foreign key (atom_id) references atom (atom_id),
	foreign key (bond_id) references bond (bond_id)
);

CREATE TABLE atom (
	atom_id	TEXT	NOT NULL	PRIMARY KEY,
	molecule_id	TEXT	NULL	DEFAULT NULL,
	element	TEXT	NULL	DEFAULT NULL,
	foreign key (molecule_id) references molecule (molecule_id)
);

CREATE TABLE bond (
	bond_id	TEXT	NOT NULL	PRIMARY KEY,
	molecule_id	TEXT	NULL	DEFAULT NULL,
	bond_type	TEXT	NULL	DEFAULT NULL,
	foreign key (molecule_id) references molecule (molecule_id)
);

CREATE TABLE molecule (
	molecule_id	TEXT	NOT NULL	PRIMARY KEY,
	label	TEXT	NULL	DEFAULT NULL
);

### User's Query:
Calculate the average number of oxygen atoms in single-bonded molecules.

### Extra Knowledge:
single-bonded molecules refers to bond_type = '-' ; average number of oxygen atom = AVG(element = 'o')
SELECT AVG(oxygen_count) FROM (SELECT T1.molecule_id, COUNT(T1.element) AS oxygen_count FROM atom AS T1 INNER JOIN bond AS T2 ON T1.molecule_id = T2.molecule_id  WHERE T2.bond_type = '-' AND T1.element = 'o'  GROUP BY T1.molecule_id) AS oxygen_counts