作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个表,用于存储我发送到其他网站的每次点击。它包含我发送点击的网站的 ID、点击的日期时间、点击的 IP 地址以及 IP 地址来自的区域(IE:美国、加拿大、英国等)
当尝试查看当天我从每个区域发送到网站的点击次数时,我使用如下查询......
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`
关于mysql - 在MYSQL中使用Group By,同时在另一列上使用distinct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7328013/
我是一名优秀的程序员,十分优秀!