У меня есть запрос, который возвращает информацию аналитики стиля о работе совете и где кандидаты приходят из в следующей структуре:Объединение нескольких записей на правой стороне присоединиться к 1 записи на левой стороне
запрос на доступ к этому есть:
SELECT g.name AS [Source]
,SUM(CASE WHEN v.cost = 0 THEN 1 ELSE 0 END) AS [Organic Clicks]
,SUM(CASE WHEN v.cost <> 0 THEN 1 ELSE 0 END) AS [Paid Clicks]
,COUNT(v.id) AS [Total Clicks]
,SUM(CASE WHEN a.applicant = 1 AND v.cost = 0 THEN 1 ELSE 0 END) AS [Organic Applicants]
,SUM(CASE WHEN a.applicant = 1 AND v.cost <> 0 THEN 1 ELSE 0 END) AS [Paid Applicants]
,SUM(CASE WHEN a.applicant = 1 THEN 1 ELSE 0 END) AS [Total Applicants]
,SUM(v.cost/100.0) AS [Spend]
FROM a_views v
LEFT OUTER JOIN a_views a
ON v.viewerid = a.viewerid
AND v.sessionsourceid = a.sessionsourceid
AND a.applicant = 1
JOIN a_sources s
ON v.sourceid = s.id
JOIN a_sourcegroups g ON s.fk_sourcegroup = g.id
--JOIN jobs j ON v.jobid = j.anal_id AND j.featured = 1
WHERE v.hostName = @jobboard
AND v.viewed_at >= @start AND v.viewed_at <= @end
GROUP BY g.name
Единственная проблема в том, что в LEFT OUTER JOIN a_views
блоке может быть несколько записей возвращается. То, что мне нужно сделать, - это только запись, отслеживаемая один раз в суммах Click
, но каждый раз, когда она найдена для сумм Applicant
.
Я нашел аналогичный вопрос об этом на this question, но ответчик фактически не дал много информации.
Чтобы возобновить то, что мне нужно, каждый экземпляр записи в правой части соединения, но только 1 экземпляр записи с левой стороны.
Используйте функцию 'Group By' и агрегированные функции для повторных данных. – Jodrell