MYSQL如何获得签到的SUM?

时间:2011-05-24 07:29:48

标签: mysql sum

SELECT promotions.`sms_promo_id`, places.`id`, places.`name`, insights.`checkins`, insights.`likes`, insights.`place_id`
FROM promotions INNER JOIN places INNER JOIN insights
ON promotions.`id` = places.`promotion_id` AND places.`id` = insights.`place_id`
GROUP BY place_id

这个SQL查询工作正常,但是当我使用GROUP BY命令时,我丢失了签入数据。在将所有2个人组合在一起之前,如何对特定地点的签到进行总结。' id'比如说2,

Example:
2, 52 checkins
2, 11 checkins

我想: 2,63次登记

当前sql生成 2,52签到

2 个答案:

答案 0 :(得分:3)

您的查询与您的输出不符。你似乎想要的是:

select place_id, sum(checkins)
from insights
group by place_id

如果您添加更多字段或更多联接,您可能最终会按其他条件进行子分组或添加额外的行。这些将导致无效结果。

答案 1 :(得分:1)

尝试:

SELECT promotions.`sms_promo_id`, places.`id`, places.`name`, sum(insights.`checkins`), insights.`likes`, insights.`place_id`
FROM promotions INNER JOIN places INNER JOIN insights
ON promotions.`id` = places.`promotion_id` AND places.`id` = insights.`place_id`
GROUP BY promotions.`sms_promo_id`, places.`id`, places.`name`, insights.`likes`, insights.`place_id`