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: Liste os tipos de eventos de engajamento comunitário, o total de participantes e o número de visitantes únicos para cada museu nos últimos 6 meses, ordenados por museu.
 ###Tabelas: 
CREATE TABLE Museum (Id INT, Name VARCHAR(100)); CREATE TABLE CommunityEvent (Id INT, MuseumId INT, EventType VARCHAR(50), Attendance INT, EventDate DATE);
SELECT MuseumId, m.Name, EventType, SUM(Attendance) as TotalAttendance, COUNT(DISTINCT v.VisitorId) as UniqueVisitors FROM Museum m JOIN CommunityEvent ce ON m.Id = ce.MuseumId JOIN (SELECT VisitorId, ROW_NUMBER() OVER (ORDER BY EventDate DESC) as RowNum FROM CommunityEvent WHERE EventDate >= DATEADD(MONTH, -6, CURRENT_DATE) GROUP BY VisitorId HAVING COUNT(DISTINCT EventDate) >= 2) v ON ce.VisitorId = v.VisitorId WHERE v.RowNum <= 50 GROUP BY MuseumId, m.Name, EventType ORDER BY m.Name;