在MYSQL中使用GROUPBY,而在另一列中使用distinct
我有一个表,其中存储了我发送到其他网站的每次点击。它包含发送点击目的地的网站ID、点击日期时间、点击的IP地址以及IP地址来自的地区(即:美国、加拿大、英国等) 当我尝试查看每天从每个地区发送到网站的点击次数时,我使用了如下查询在MYSQL中使用GROUPBY,而在另一列中使用distinct,mysql,sql,Mysql,Sql,我有一个表,其中存储了我发送到其他网站的每次点击。它包含发送点击目的地的网站ID、点击日期时间、点击的IP地址以及IP地址来自的地区(即:美国、加拿大、英国等) 当我尝试查看每天从每个地区发送到网站的点击次数时,我使用了如下查询 SELECT `clicks_region`, COUNT(*) as TOTAL FROM `clicks` WHERE `clicks_to_websites_id` = '1' AND DATE(`clicks_date`) = DATE('2011-08
SELECT `clicks_region`, COUNT(*) as TOTAL
FROM `clicks`
WHERE `clicks_to_websites_id` = '1'
AND DATE(`clicks_date`) = DATE('2011-08-30' )
GROUP BY `clicks_region`
现在我想做同样的查询,但限制它,使IP每天只计算一次
我的第一个想法是这样做
SELECT `clicks_region`, COUNT(*) as TOTAL
FROM `clicks`
WHERE `clicks_to_websites_id` = '1'
AND DATE(`clicks_date`) = DATE('2011-08-30' )
GROUP BY `clicks_region`
HAVING DISTINCT(`clicks_ip`)
但显然,这种语法不起作用
到目前为止,我在研究中还没有找到解决办法。我开始认为子查询可能是答案——如果有人有建议或建议,我将不胜感激
谢谢如果我理解正确,我想你想要这样的东西:
SELECT `clicks_region`, COUNT(*) as TOTAL
FROM
(SELECT DISTINCT 'clicks_region', 'clicks_ip'
FROM 'clicks'
WHERE `clicks_to_websites_id` = '1'
AND DATE(`clicks_date`) = DATE('2011-08-30' )) x
GROUP BY `clicks_region`
很高兴听到这个消息。请点击答案左边的复选标记,将此答案标记为正确,好吗?