

CREATE TABLE tokens_relevantes (
    id_chave_token_relevante INT PRIMARY KEY AUTO_INCREMENT,
    ids_referencias TEXT,
    nomes_referencias TEXT,
    nome_token VARCHAR(255) COLLATE utf8mb4_bin,
    acentuada VARCHAR(255) COLLATE utf8mb4_bin,
    id_tipo_token INT,
    id_tipo_token_spaCy INT,
    id_token INT,
    conta INT,
    origem VARCHAR(50)
);


INSERT INTO tokens_relevantes (
    ids_referencias,
    nomes_referencias,
    nome_token,
    acentuada,
    id_tipo_token,
    id_tipo_token_spaCy,
    id_token,
    conta,
    origem
)
SELECT *
FROM (
    SELECT                                                         
        GROUP_CONCAT(id_ocupacao) AS ids_referencias, 
        GROUP_CONCAT((SELECT nome_ocupacao FROM ocupacoes WHERE id_chave_ocupacao = id_ocupacao)) AS nomes_referencias,    
        nome_token,   
	acentuada,
        id_tipo_token, 
	id_tipo_token_spaCy,
        id_token,                                                                 
        COUNT(id_ocupacao) AS conta,
        "ocupacoes" AS origem
    FROM                                                                 
        tokens_ocupacoes                                                         
    LEFT JOIN                                                                 
        tokens ON id_token = id_chave_token
    GROUP BY                                                                 
        id_token 
    HAVING conta < 2                                                         
    
    UNION 
    
    SELECT
        GROUP_CONCAT(id_titulo) AS ids_referencias,  
        GROUP_CONCAT((SELECT titulo FROM frases_opt WHERE id_titulo = fr.id_titulo)) AS nomes_referencias,             
        nome_token,
	acentuada,
        id_tipo_token,
	id_tipo_token_spaCy,
        id_token,
        COUNT(id_titulo) AS conta,
        "titulos_do_curso" AS origem
    FROM
        frases AS fr
    LEFT JOIN
        tokens ON id_token = id_chave_token
    WHERE id_titulo IN (
        SELECT id_titulo 
        FROM campos_cursos 
        WHERE id_tipo_classificacao IN (
            SELECT id_chave_tipo_classificacao 
            FROM tipos_classificacoes 
            WHERE nome_tipo_classificacao = "titulo_do_curso"
        )
    )
    GROUP BY
        id_token 
    HAVING conta < 2
) AS uniao
ORDER BY conta;


