我需要找出每天唯一visitirs的数量,我有数据的基础是这样的:唯一访问者查询
UID clicks date
6046 9 2013-03-06
6449 7 2013-03-06
6450 41 2013-03-06
664 2 2013-03-07
2432 36 2013-03-07
3246 11 2013-03-07
6031 52 2013-03-07
现在我需要找到是计算每个唯一访问者的数量天。我发现这一点以及当天的点击总和。所以查询是这样的:
SELECT date,SUM(clicks) as new_clicks,COUNT(DISTINCT uID) as unique_clicks
FROM uc_user
WHERE date <='2013-03-15' GROUP BY date;
但在这里我得到错误的结果。计数使用
SELECT date, COUNT(DISTINCT uID) AS unique_clicks
FROM uc_user
WHERE date <= '2013-03-15'
GROUP BY date
LIMIT 0 , 30
是什么这些查询之间的区别,哪一个是用于显示独立访问者人数正确的是,我为相同的时间间隔计算出的数不同?
其实我在PHP实际查询是这样的:
SELECT date,SUM(clicks) as new_clicks,COUNT(uID) as unique_clicks
FROM currencyclick_user
WHERE date BETWEEN '$from' AND '$to'
GROUP BY date
和
SELECT SUM(clicks) as total_new_clicks,
COUNT(DISTINCT uID) as total_new_uniqueclicks
FROM currencyclick_user
WHERE date BETWEEN '$from' AND '$to'
但对于相同的范围,它显示不同的值。我的意思是总和查询显示的总数比通过在第一个查询中添加计数所得到的值显示的总数要多。
你的用户ID的数量看起来这两个查询相同。它应该工作正常。查询是否发布了导致问题的实际查询,还是简化的查询? – 2013-03-15 11:56:13
因为所有的id都是唯一的,所以2013-03-06应该是3,2013-03-07应该是4。如果一个UID重复,它不应该添加。也就是说,如果一个ID,它是664在2013年3月6日的条目,它不应该在任何接下来的几天考虑计数 – 2013-03-15 11:57:00
我发现了同样的。看到这里,http://www.sqlfiddle.com/#!2/8cfb2/3(*您必须更新记录*) – 2013-03-15 12:01:35