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 “Mobile Phone”,
MAX(CASE ucf.name WHEN ‘user_field_2’ THEN value END) AS “Job Title”,
MAX(CASE ucf.name WHEN ‘user_field_5’ THEN value END) AS “Employer”,
MAX(CASE ucf.name WHEN ‘user_field_4’ THEN value END) AS “Postcode”,
MAX(CASE ucf.name WHEN ‘user_field_14’ THEN value END) AS “Clinical Profession”,
MAX(CASE ucf.name WHEN ‘user_field_3’ THEN value END) AS “Clinical Speciality”,
MAX(CASE ucf.name WHEN ‘user_field_17’ THEN value END) AS “Working Clinically”,
MAX(CASE ucf.name WHEN ‘user_field_1’ THEN value END) AS “Informatics Interest”,
MAX(CASE ucf.name WHEN ‘user_field_15’ THEN value END) AS “Dietary Requirement”

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