select reference.name, (SELECT count(samples.sample_id) as sample_count FROM public.samples LEFT OUTER JOIN public.sample_reference as samp_ref ON (samples.sample_id = samp_ref.sample_id ) LEFT OUTER JOIN public.reference as sub_ref ON (samp_ref.reference_id = sub_ref.reference_id ) WHERE sub_ref.reference_id = reference.reference_id ) as sample_count, (SELECT count(images.image_id) as image_count FROM public.images LEFT OUTER JOIN public.samples as samp ON (images.sample_id = samp.sample_id ) LEFT OUTER JOIN public.sample_reference as sample_ref ON (samp.sample_id = sample_ref.sample_id ) LEFT OUTER JOIN public.reference as sub_ref ON (sample_ref.reference_id = sub_ref.reference_id ) WHERE sub_ref.reference_id = reference.reference_id ) as images_count, (SELECT count(chemical_analyses.chemical_analysis_id) as chem_count FROM public.chemical_analyses LEFT OUTER JOIN public.reference as sub_ref ON (chemical_analyses.reference_id = sub_ref.reference_id ) WHERE sub_ref.reference_id = reference.reference_id ) as chem_count FROM reference GROUP BY reference.reference_id, reference.name
