Displaying user custom fields in data explorer query results

He encontrado esa consulta muy útil para nuestro sitio, pero llevó un tiempo personalizarla / modificarla para que funcionara por grupo e incluir otros datos de usuario como los correos electrónicos.

Sin embargo, estoy a punto de embarcarme en una instancia grande con algunos campos de usuario que serán un poco dinámicos durante un tiempo.

¿Hay alguien por ahí con la capacidad para reconstruir esta consulta de modo que genere automáticamente todos los campos de datos de usuario? ¿Quizás @simon?

Aquí está mi consulta por ahora:

–[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 “Teléfono móvil”,
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 “Empleador”,
MAX(CASE ucf.name WHEN ‘user_field_4’ THEN value END) AS “Código postal”,
MAX(CASE ucf.name WHEN ‘user_field_14’ THEN value END) AS “Profesión clínica”,
MAX(CASE ucf.name WHEN ‘user_field_3’ THEN value END) AS “Especialidad clínica”,
MAX(CASE ucf.name WHEN ‘user_field_17’ THEN value END) AS “Trabajando clínicamente”,
MAX(CASE ucf.name WHEN ‘user_field_1’ THEN value END) AS “Interés en 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