Displaying user custom fields in data explorer query results

Encontrei essa consulta muito útil para o nosso site, mas levou um tempo para personalizar/hackear, fazê-la funcionar por grupo e incluir outras informações do usuário, como e-mails.

No entanto, estou prestes a embarcar em uma grande instância com alguns campos de usuário que serão um pouco dinâmicos por um tempo.

Alguém por aí tem a inteligência para recriar essa consulta para que ela automaticamente gere todos os campos de dados do usuário? Talvez @simon?

Aqui está minha consulta no momento:

–[params]
– string :group_name

With included_users AS (
SELECT
gu.user_id
FROM group_users gu
JOIN groups g
ON g.id = gu.group_id
WHERE g.name = :group_name
),
e AS (
SELECT email, user_id
FROM user_emails u
WHERE u.primary = true
)

SELECT
u.id AS user_id, u.username, u.name, e.email,
MAX(CASE ucf.name WHEN ‘user_field_6’ THEN value END) AS “Telefone Celular”,
MAX(CASE ucf.name WHEN ‘user_field_2’ THEN value END) AS “Cargo”,
MAX(CASE ucf.name WHEN ‘user_field_5’ THEN value END) AS “Empregador”,
MAX(CASE ucf.name WHEN ‘user_field_4’ THEN value END) AS “CEP”,
MAX(CASE ucf.name WHEN ‘user_field_14’ THEN value END) AS “Profissão Clínica”,
MAX(CASE ucf.name WHEN ‘user_field_3’ THEN value END) AS “Especialidade Clínica”,
MAX(CASE ucf.name WHEN ‘user_field_17’ THEN value END) AS “Trabalhando Clinicamente”,
MAX(CASE ucf.name WHEN ‘user_field_1’ THEN value END) AS “Interesse em Informática”,
MAX(CASE ucf.name WHEN ‘user_field_15’ THEN value END) AS “Requisito Dietético”

FROM user_custom_fields AS ucf
RIGHT JOIN users AS U on ucf.user_id = u.id
RIGHT JOIN e on ucf.user_id = e.user_id
WHERE u.id IN (SELECT user_id FROM included_users)
GROUP BY u.id, e.email
ORDER BY username asc