我有一个place_analytics表,我每个月都会获取以下位置,我的问题是,当我按月获取不同的计数时,它会忽略不同的值并根据每月基础获取不需要的(在屏幕截图中描述)记录。
注意:用户可以多次关注/取消关注同一个地方,我不会删除此数据,而是存储多个条目。
例如,在下面的屏幕截图中,我已根据place_id过滤了结果,其中user_id = 5在5月之后是place_id = 4,在7月取消了它,然后在7月也跟进。
当我查询时,
SELECT place_id, COUNT(DISTINCT user_id) as follow_count
FROM place_analytics
WHERE is_followed=1
GROUP BY place_id
这是预期的结果,但是,当我按月添加另一个group by子句时,
MONTHNAME(STR_TO_DATE(MONTH(created_at), '%m'))
返回结果集,其中place_id 4多次出现。
问题 如果user_id = 5在5月跟随/取消关注place_id = 4,则在7月跟随。我的查询应该只考虑表中的一条记录而忽略每月组。这可能吗?
详情MySQL Fiddle就在这里,
预期结果应为,