Abaixo está uma instrução que descreve uma tarefa de geração de SQL, combinada com uma entrada que fornece mais contexto sobre os esquemas de tabela disponíveis. Escreva o código SQL que responda adequadamente à solicitação
 ###Instrução: Quantos usuários iniciaram, mas não completaram um tour virtual para hotéis em 'CityG' nos últimos 30 dias?
 ###Tabelas: 
CREATE TABLE Hotels (hotel_id INT, hotel_name VARCHAR(50), city VARCHAR(50)); CREATE TABLE VirtualTours (tour_id INT, hotel_id INT, tour_name VARCHAR(50)); CREATE TABLE UserInteractions (user_id INT, tour_id INT, interaction_date DATE, completed BOOLEAN); INSERT INTO Hotels (hotel_id, hotel_name, city) VALUES (1, 'Hotel1', 'CityG'), (2, 'Hotel2', 'CityH'); INSERT INTO VirtualTours (tour_id, hotel_id) VALUES (1, 1), (2, 1), (3, 2), (4, 2); INSERT INTO UserInteractions (user_id, tour_id, interaction_date, completed) VALUES (1, 1, CURDATE(), TRUE), (2, 1, DATE_SUB(CURDATE(), INTERVAL 20 DAY), FALSE), (3, 2, DATE_SUB(CURDATE(), INTERVAL 25 DAY), FALSE);
SELECT COUNT(DISTINCT ui.user_id) FROM Hotels h JOIN VirtualTours vt ON h.hotel_id = vt.hotel_id JOIN UserInteractions ui ON vt.tour_id = ui.tour_id WHERE h.city = 'CityG' AND ui.interaction_date >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND ui.completed = FALSE;