Sql 错误979:不是GROUP BY表达式

Sql 错误979:不是GROUP BY表达式,sql,oracle-sqldeveloper,Sql,Oracle Sqldeveloper,尝试返回上次联系日期时出错 SELECT CDC.pat_id, MAX(SOC.contact_date), FROM hb61.cdcsaar_patients CDC JOIN clarity.social_hx SOC ON CDC.pat_id=SOC.pat_id LEFT OUTER JOIN clarity.smoking_cess_hx CESS ON CDC.pat_id=CESS.pat_id LEFT OUTER JOIN clarity.social_hx_alc_u

尝试返回上次联系日期时出错

SELECT CDC.pat_id, MAX(SOC.contact_date), 
FROM hb61.cdcsaar_patients CDC
JOIN clarity.social_hx SOC ON CDC.pat_id=SOC.pat_id
LEFT OUTER JOIN clarity.smoking_cess_hx CESS ON CDC.pat_id=CESS.pat_id
LEFT OUTER JOIN clarity.social_hx_alc_use ALC on CDC.pat_id=ALC.pat_id
GROUP BY SOC.contact_date
;

您需要将所选列(在本例中为CDC.pat_id)放在GROUP BY子句上,而不是应用聚合函数的列

SELECT
  CDC.pat_id,
  MAX(SOC.contact_date)
FROM
  hb61.cdcsaar_patients CDC
  JOIN clarity.social_hx SOC ON CDC.pat_id = SOC.pat_id
  LEFT OUTER JOIN clarity.smoking_cess_hx CESS ON CDC.pat_id = CESS.pat_id
  LEFT OUTER JOIN clarity.social_hx_alc_use ALC on CDC.pat_id = ALC.pat_id
GROUP BY
  CDC.pat_id;

您需要将未应用聚合函数的任何列放入GROUP BY子句中(在本例中为
CDC.pat\u id
,而不是
SOC.contact\u date