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签到
答案 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`