我正在从 4 个不同的表中获取数据:
- 潜在客户
- payu_transactions
- corporate_user_rides
- 公司用户
还有一些条件:
- 用户乘坐次数应大于 0
- 应该有一定数量的注册用户和活跃用户
- 会有一段时间
我已经编写了一些 SQL 查询,但没有得到预期的结果 - 问题在于骑行次数和用户数。
例如-
假设公司 x 实际上有 38 次行程和 23 个用户,但它显示了 7866 次行程和 7866 个用户。
另一家公司 y 实际上有 18 次行程和 5 位用户,但它显示的是 90 次行程和 90 名用户。
任何人都可以帮忙吗,我不确定我在这里做什么。
我试过了-
查询
SELECT l.id AS leadId,
l.corporate_id AS CorporateID,
"P-1" AS priority,
l.source,
l.user_name AS FirstName,
l.user_name AS LastName,
l.corporate_name AS corpName,
l.user_mail_id AS email,
l.phone_number AS phone,
l.created_At AS leadCreation,
l.comments,
Count(CU.id) AS users,
Count(CUR.id) AS rides,
PUT.amount AS payment
FROM leads l
LEFT JOIN payu_transactions PUT
ON l.user_mail_id = PUT.email
LEFT JOIN corporate_user_rides CUR
ON l.corporate_id = CUR.corporate_id
LEFT JOIN corporate_users CU
ON l.corporate_id = CU.corporate_id
WHERE l.created_at BETWEEN '2015-03-16 12:00:00' AND '2016-03-17 12:00:00'
GROUP BY l.user_mail_id
HAVING Count(CUR.id) > 0
AND Count(CU.id) > 0
AND Count(CASE
WHEN CU.status IN ( 'active' ) THEN 1
END) > 0;
帮助将不胜感激。
最佳答案
使用Count(不同的列.名称)
而不是Count(列.名称)
。
关于mysql - 应用 Join SQL 查询时出现意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36237691/