주어진 테이블의 각 레코드에 얼마나 많은 연관성이 있는지보고 싶습니다. 이 협회의 일부는 지금까지 내가 대화를 문을 조인 마지막으로 문제로 실행여러 테이블의 연결 개수 계산
-- Count app associations
SELECT
distinct a.name,
COALESCE(v.count, 0) as visitors,
COALESCE(am.count, 0) AS auto_messages,
COALESCE(c.count, 0) AS conversations
FROM apps a
LEFT JOIN (SELECT app_id, count(*) AS count FROM visitors GROUP BY 1) v ON a.id = v.app_id
LEFT JOIN (SELECT app_id, count(*) AS count FROM auto_messages GROUP BY 1) am ON a.id = am.app_id
LEFT JOIN (
SELECT DISTINCT c.id, app_id, count(c) AS count
FROM conversations c LEFT JOIN messages m ON m.conversation_id = c.id
WHERE m.visitor_id IS NOT NULL
GROUP BY c.id) c ON a.id = c.app_id
WHERE a.test = false
ORDER BY visitors DESC;
이 그들
에 부착 몇 가지 조건이있다. visitor_id가 null이 아닌 경우 최소한 1 개의 메시지가있는 대화 수를 계산하고 싶습니다. 웬일인지, 나는 각 앱에 대해 여러 레코드를 얻는다. 대화가 제대로 그룹화되지 않았습니다.
아이디어가 있으십니까?
우리는 c.id에 의해 그룹화되어 있다는 사실과 관련이 있습니다 ......... – scaisEdge
차이점을 보이지 않는 것 같습니다 – Tarlen