Coin says to YSITD
好像是因為這樣寫會直接把 record 存進 array 裡面 像這樣應該就不會了 SELECT min(sub.CERTIFICATE_ID) ID, min(sub.ISSUER_CA_ID) ISSUER_CA_ID, array_agg(DISTINCT sub.NAME_VALUE) NAME_VALUES, x509_subjectName(sub.CERTIFICATE) SUBJECT_NAME, x509_notBefore(sub.CERTIFICATE) NOT_BEFORE, x509_notAfter(sub.CERTIFICATE) NOT_AFTER, array_agg(san.value) alt_names FROM (SELECT * FROM certificate_and_identities cai WHERE plainto_tsquery('embedded.one.microsoft.com') @@ identities(cai.CERTIFICATE) AND cai.NAME_VALUE ILIKE ('%' || 'embedded.one.microsoft.com' || '%') LIMIT 10000 ) sub LEFT OUTER JOIN LATERAL (SELECT x509_altNames(sub.CERTIFICATE)) san(value) ON TRUE GROUP BY sub.CERTIFICATE;