Displaying user custom fields in data explorer query results

Этот запрос оказался очень полезным для нашего сайта, но его настройка и доработка, чтобы он работал по группам и включал дополнительную информацию о пользователях, например, адреса электронной почты, заняла немало времени.

Однако я вот-вот приступаю к работе над крупным экземпляром с некоторыми полями пользователей, которые какое-то время будут довольно динамичными.

Есть ли среди вас кто-то достаточно умный, чтобы перестроить этот запрос так, чтобы он автоматически выводил все поля данных пользователей? Может быть, @simon?

Вот мой запрос на данный момент:

–[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 “Мобильный телефон”,
MAX(CASE ucf.name WHEN ‘user_field_2’ THEN value END) AS “Должность”,
MAX(CASE ucf.name WHEN ‘user_field_5’ THEN value END) AS “Работодатель”,
MAX(CASE ucf.name WHEN ‘user_field_4’ THEN value END) AS “Индекс”,
MAX(CASE ucf.name WHEN ‘user_field_14’ THEN value END) AS “Клиническая профессия”,
MAX(CASE ucf.name WHEN ‘user_field_3’ THEN value END) AS “Клиническая специализация”,
MAX(CASE ucf.name WHEN ‘user_field_17’ THEN value END) AS “Работает в клинике”,
MAX(CASE ucf.name WHEN ‘user_field_1’ THEN value END) AS “Интерес к информатике”,
MAX(CASE ucf.name WHEN ‘user_field_15’ THEN value END) AS “Диетические требования”

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