MySQL: Left Join, concat or sum, 不重复的行
MySQL: Left Join, concat or sum, unrepeated rows
我正在从头开始制作推荐系统。有 2 个表:“USERS”和“PAYMENTS”。付款中的每一行可能是同一用户的单独付款。
我需要显示我们的相关人员,他们有多少推荐人,有多少人在免费计划中,有多少人已经付费订阅。
我现在已经完成了:
SELECT u.user_id
, u.email
, u.package_id
, u.date
, u.package_expiration_date
, u.country
, u.utm_id
, p.amount
FROM users u
LEFT
JOIN payments p
ON p.user_id = u.user_id
WHERE u.utm_id = 2;
这是输出:
如您所见,user_id“1”两次支付了 24.5 美元。
我需要在一个单独的列中显示支付的总金额($49),并且 PHP 中的某个百分比类型。
有什么建议吗?
快速聚合应该可以解决问题,为方便起见删除了其他列
SELECT
`users`.`user_id`, `users`.`email`,`users`.`utm_id`,
SUM(payments.amount) as total_sum
FROM `users`
LEFT JOIN `payments` ON `payments`.`user_id` = `users`.`user_id`
WHERE `users`.`utm_id` = '2'
GROUP BY `users`.`user_id`, `users`.`email`
我正在从头开始制作推荐系统。有 2 个表:“USERS”和“PAYMENTS”。付款中的每一行可能是同一用户的单独付款。
我需要显示我们的相关人员,他们有多少推荐人,有多少人在免费计划中,有多少人已经付费订阅。
我现在已经完成了:
SELECT u.user_id
, u.email
, u.package_id
, u.date
, u.package_expiration_date
, u.country
, u.utm_id
, p.amount
FROM users u
LEFT
JOIN payments p
ON p.user_id = u.user_id
WHERE u.utm_id = 2;
这是输出:
如您所见,user_id“1”两次支付了 24.5 美元。 我需要在一个单独的列中显示支付的总金额($49),并且 PHP 中的某个百分比类型。
有什么建议吗?
快速聚合应该可以解决问题,为方便起见删除了其他列
SELECT
`users`.`user_id`, `users`.`email`,`users`.`utm_id`,
SUM(payments.amount) as total_sum
FROM `users`
LEFT JOIN `payments` ON `payments`.`user_id` = `users`.`user_id`
WHERE `users`.`utm_id` = '2'
GROUP BY `users`.`user_id`, `users`.`email`