Database schema:

CREATE TABLE "voice-actors" (
	character TEXT -- example: ['Abby Mallard', 'Abigail Gabble'],
	"voice-actor" TEXT -- example: ['Joan Cusack', 'Monica Evans'],
	movie TEXT -- example: ['The Aristocats', 'Chicken Little'],
	PRIMARY KEY (character), 
	CONSTRAINT fk_voice-actors_characters FOREIGN KEY(movie) REFERENCES characters (movie_title)
)


CREATE TABLE characters (
	movie_title TEXT -- example: ['Alice in Wonderland', 'Aladdin'],
	release_date TEXT -- example: ['21-Dec-37', '7-Feb-40'],
	hero TEXT -- example: ['Pinocchio', 'Snow White'],
	villian TEXT -- example: ['Evil Queen', 'Stromboli'],
	song TEXT -- example: ['Some Day My Prince Will Come', 'When You Wish upon a Star'],
	PRIMARY KEY (movie_title), 
	CONSTRAINT fk_characters_voice-actors FOREIGN KEY(hero) REFERENCES "voice-actors" (character)
)


CREATE TABLE director (
	name TEXT -- example: ['101 Dalmatians', 'Aladdin'],
	director TEXT -- example: ['Ben Sharpsteen', 'David Hand'],
	PRIMARY KEY (name), 
	CONSTRAINT fk_director_characters FOREIGN KEY(name) REFERENCES characters (movie_title)
)


CREATE TABLE movies_total_gross (
	movie_title TEXT -- example: ['101 Dalmatians', '102 Dalmatians'],
	release_date TEXT -- example: ['Jan 25, 1961', 'Nov 27, 1996'],
	genre TEXT -- example: ['Adventure', 'Musical'],
	"MPAA_rating" TEXT -- example: ['', 'G'],
	total_gross TEXT -- example: ['$84,300,000', '$184,925,485'],
	inflation_adjusted_gross TEXT -- example: ['$2,188,229,052', '$5,228,953,251'],
	PRIMARY KEY (movie_title, release_date), 
	CONSTRAINT fk_movies_total_gross_characters FOREIGN KEY(movie_title) REFERENCES characters (movie_title)
)


CREATE TABLE revenue (
	"Year" INTEGER -- example: ['1991', '1992'],
	"Studio Entertainment[NI 1]" REAL -- example: ['3115.0', '2593.0'],
	"Disney Consumer Products[NI 2]" REAL -- example: ['724.0', '1081.0'],
	"Disney Interactive[NI 3][Rev 1]" INTEGER -- example: ['260', '174'],
	"Walt Disney Parks and Resorts" REAL -- example: ['2794.0', '3306.0'],
	"Disney Media Networks" TEXT -- example: ['414', '359'],
	"Total" INTEGER -- example: ['6111', '7502'],
	PRIMARY KEY ("Year")
)

Question: What proportion of the total gross of all movies is from movies with songs?
Evidence: Movies with songs refer song = 'not null'; DIVIDE(SUM(total_gross where song = 'not null'), sum(total_gross)) as percentage;

SQL:
SELECT CAST(COUNT(CASE WHEN T1.song IS NOT NULL THEN T2.movie_title ELSE NULL END) AS REAL) * 100 / COUNT(T2.movie_title) FROM characters AS T1 INNER JOIN movies_total_gross AS T2 ON T1.movie_title = T2.movie_title