mysql pivot tabela Dados da coluna como linhas
tabelas Pivot são uma ferramenta poderosa para transformar dados de um formato baseado em coluna em um formato baseado em linha. No MySQL, essa transformação pode ser alcançada usando a expressão de caso em conjunto com as funções de agregação. A.User_id, A.JOB_ID, Max (caso quando c.Question = 'é isso?' Então B.Answer end) 'é isso?', Max (caso quando c.Question = 'ou isto?' Então B.Answer End) 'ou isto?', Max (caso quando c.Question = 'ou aquilo?' Então B.Answer End) 'ou aquilo? ' Dos resultados a INNER JUNÇÃO Answers B Em A.id = B.FK_RESULT_ID INNER CONJUNTO PERGUNTA C Em B.FK_QUESTION_ID = C.ID Grupo por A.id, A.User_id, A.JOB_ID
Nesta consulta, a expressão do caso é usada para verificar a coluna de perguntas da tabela de perguntas e retornar a resposta correspondente da tabela de respostas. A função de agregação Max é então usada para encontrar o valor máximo para cada pergunta, que representa a resposta fornecida para essa pergunta. Selecione Group_concat (distinto Concat ( 'Max (caso quando c.Question =' '', pergunta, '' 'então B.Answer End) como', Concat ('`', pergunta, '' ') ) ) Em @SQL De pergunta; Definir @sql = concat ('selecione a.id, A.User_id, a.job_id, ', @sql,' Dos resultados a INNER JUNÇÃO Answers B Em A.id = B.FK_RESULT_ID INNER CONJUNTO PERGUNTA C Em B.FK_QUESTION_ID = C.ID Grupo por A.id, A.User_id, a.job_id '); Prepare o STMT do @SQL; Executar sTMT; Deallocate Prepare STMT;
Este código gera uma instrução SQL dinâmica que pode lidar com qualquer número de perguntas. Construa dinamicamente a cláusula de seleção concatenando o valor máximo para cada pergunta como um nome de coluna.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3