我正在使用一个 case 语句来计算两个列,primary_specialty 和 secondary_specialty。这个方法很有效,但是当我尝试在 pd.id 上执行 GROUP BY 时,会出现以下错误: "pppd.created_at 列必须出现在 GROUP BY 子句中或在聚合函数中使用"。期望的输出是每个 pd 的单行,包含 primary_specialty 和 secondary_specialty 两个列。
SELECT pd.id,
pd.npi,
pppd.created_at AS "date_submitted",
pppd.converted_at AS "date_approved",
dp.created_at AS "date_profile_created",
t.description AS "npi_specialty",
case when ds.ordinal = 1 then s.name end as "primary_specialty",
case when ds.ordinal = 2 then s.name end as "secondary_specialty"
FROM potential_doctors AS pd
INNER JOIN patient_profile_potential_doctors as pppd on pd.id = pppd.potential_doctor_id
INNER JOIN doctor_taxonomies AS dt on pd.id = dt.potential_doctor_id
INNER JOIN taxonomies AS t on dt.taxonomy_id = t.id
INNER JOIN doctor_profiles AS dp on pd.npi = dp.npi
INNER JOIN doctor_specialties AS ds on dp.id = ds.doctor_profile_id
INNER JOIN specialties AS s on ds.specialty_id = s.id