why i get only one row as result:
<code>SELECT
u.id AS id,
u.name AS name,
SUM(p.totalSeen + q.totalSeen) AS totalSeen,
SUM(p.totalLikes + q.totalLikes) AS totalLikes,
SUM(p.totalShares + q.totalShares) AS totalShares,
SUM(p.totalBookmarks + q.totalBookmarks) AS totalBookmarks,
p.totalDownloads,
p.totalFeedbacks
FROM users u
LEFT JOIN (
SELECT
pu.id AS id,
SUM(IF(pe.event = 'SEEN', 1, 0)) AS totalSeen,
SUM(IF(pe.event = 'LIKE', 1, 0)) AS totalLikes,
SUM(IF(pe.event = 'SHARE', 1, 0)) AS totalShares,
SUM(IF(pe.event = 'BOOKMARK', 1, 0)) AS totalBookmarks,
SUM(IF(pe.event = 'DOWNLOAD', 1, 0)) AS totalDownloads,
SUM(IF(pe.event = 'FEEDBACK', 1, 0)) AS totalFeedbacks
FROM postEvents pe
JOIN users pu ON pu.id = pe.userId AND pu.deletedOn IS NULL
GROUP BY pu.id
) p ON p.id = u.id
LEFT JOIN (
SELECT
qu.id AS id,
SUM(IF(qe.event = 'SEEN', 1, 0)) AS totalSeen,
SUM(IF(qe.event = 'LIKE', 1, 0)) AS totalLikes,
SUM(IF(qe.event = 'SHARE', 1, 0)) AS totalShares,
SUM(IF(qe.event = 'BOOKMARK', 1, 0)) AS totalBookmarks
FROM questionEvents qe
JOIN users qu ON qu.id = qe.userId AND qu.deletedOn IS NULL
GROUP BY qu.id
) q ON q.id = u.id;
</code>
<code>SELECT
u.id AS id,
u.name AS name,
SUM(p.totalSeen + q.totalSeen) AS totalSeen,
SUM(p.totalLikes + q.totalLikes) AS totalLikes,
SUM(p.totalShares + q.totalShares) AS totalShares,
SUM(p.totalBookmarks + q.totalBookmarks) AS totalBookmarks,
p.totalDownloads,
p.totalFeedbacks
FROM users u
LEFT JOIN (
SELECT
pu.id AS id,
SUM(IF(pe.event = 'SEEN', 1, 0)) AS totalSeen,
SUM(IF(pe.event = 'LIKE', 1, 0)) AS totalLikes,
SUM(IF(pe.event = 'SHARE', 1, 0)) AS totalShares,
SUM(IF(pe.event = 'BOOKMARK', 1, 0)) AS totalBookmarks,
SUM(IF(pe.event = 'DOWNLOAD', 1, 0)) AS totalDownloads,
SUM(IF(pe.event = 'FEEDBACK', 1, 0)) AS totalFeedbacks
FROM postEvents pe
JOIN users pu ON pu.id = pe.userId AND pu.deletedOn IS NULL
GROUP BY pu.id
) p ON p.id = u.id
LEFT JOIN (
SELECT
qu.id AS id,
SUM(IF(qe.event = 'SEEN', 1, 0)) AS totalSeen,
SUM(IF(qe.event = 'LIKE', 1, 0)) AS totalLikes,
SUM(IF(qe.event = 'SHARE', 1, 0)) AS totalShares,
SUM(IF(qe.event = 'BOOKMARK', 1, 0)) AS totalBookmarks
FROM questionEvents qe
JOIN users qu ON qu.id = qe.userId AND qu.deletedOn IS NULL
GROUP BY qu.id
) q ON q.id = u.id;
</code>
SELECT
u.id AS id,
u.name AS name,
SUM(p.totalSeen + q.totalSeen) AS totalSeen,
SUM(p.totalLikes + q.totalLikes) AS totalLikes,
SUM(p.totalShares + q.totalShares) AS totalShares,
SUM(p.totalBookmarks + q.totalBookmarks) AS totalBookmarks,
p.totalDownloads,
p.totalFeedbacks
FROM users u
LEFT JOIN (
SELECT
pu.id AS id,
SUM(IF(pe.event = 'SEEN', 1, 0)) AS totalSeen,
SUM(IF(pe.event = 'LIKE', 1, 0)) AS totalLikes,
SUM(IF(pe.event = 'SHARE', 1, 0)) AS totalShares,
SUM(IF(pe.event = 'BOOKMARK', 1, 0)) AS totalBookmarks,
SUM(IF(pe.event = 'DOWNLOAD', 1, 0)) AS totalDownloads,
SUM(IF(pe.event = 'FEEDBACK', 1, 0)) AS totalFeedbacks
FROM postEvents pe
JOIN users pu ON pu.id = pe.userId AND pu.deletedOn IS NULL
GROUP BY pu.id
) p ON p.id = u.id
LEFT JOIN (
SELECT
qu.id AS id,
SUM(IF(qe.event = 'SEEN', 1, 0)) AS totalSeen,
SUM(IF(qe.event = 'LIKE', 1, 0)) AS totalLikes,
SUM(IF(qe.event = 'SHARE', 1, 0)) AS totalShares,
SUM(IF(qe.event = 'BOOKMARK', 1, 0)) AS totalBookmarks
FROM questionEvents qe
JOIN users qu ON qu.id = qe.userId AND qu.deletedOn IS NULL
GROUP BY qu.id
) q ON q.id = u.id;
I need to do sum metrics in subqueries, and in subqueries some filters should be implemented like deletedOn IS NULL
THX
1