【发布时间】:2019-11-22 10:51:52
【问题描述】:
我有 2 个表 users 和 transactions
我想选择计数用户交易和这些交易的总和。
我的查询看起来像
SELECT users.id,
COUNT(transactions.amount) AS total_transactions,
SUM(transactions.amount) AS total_amount
FROM
users
LEFT JOIN transactions ON ( (transactions.user_id = users.id) AND (transactions.status=3) )
GROUP BY users.id
HAVING total_transactions = X
它不能正常工作。
我的问题是如何同时使用 count 和 sum?
我该怎么办?
这是我的完整查询
这是我的完整查询:
SELECT
users.id, users.gender, users.phone, users.email,
COUNT( DISTINCT(transactions.id)) AS total_transactions,
SUM( transactions.amount) AS total_amount,
users.verification_required, user_details.optin_mail_sent, users.last_login, activities.updated_at AS last_activity
FROM
users LEFT JOIN transactions ON ( (transactions.user_id = users.id) AND (transactions.status=3) )
LEFT JOIN
user_details ON (user_details.user_id = users.id)
LEFT JOIN
activities ON (activities.user_id = users.id)
WHERE (DATE(users.last_login) >= DATE_SUB( CURRENT_DATE, INTERVAL 3 MONTH)) AND (DATE(users.last_login) <= DATE_SUB( CURRENT_DATE, INTERVAL 1 MONTH))
AND (users.gender='female')
AND (users.verification_required='1')
AND (users.unverified=0)
AND (users.active=1)
AND (users.gender <> '')
GROUP BY users.id
HAVING total_transactions = 3
ORDER BY activities.updated_at DESC
【问题讨论】:
-
'我该怎么办?'解释你正在尝试做什么以及你所说的“它不能正常工作”是什么意思。提供样本数据和预期输出会很有用。
-
查看更新的描述
-
为什么有 total_transactions = 1?
-
没有 HAVING 或者
HAVING total_transactions > 1。看看这个最近的问题:stackoverflow.com/q/58990863/2527905 -
我只想选择有 X 个交易的用户