gpt4 book ai didi

mysql - 多分组SQL,点击和用户计数错误

转载 作者:行者123 更新时间:2023-11-29 23:38:35 25 4
gpt4 key购买 nike

我试图获取我网站的点击/用户数量,为此我有他们的 cookie ID 和日期。但从我到目前为止编写的查询中,我收到以下错误

表格

cookieid  date      
--------------------
001 2011-03-17
001 2011-03-17
002 2011-03-17
001 2011-03-17
001 2011-03-20
002 2011-03-21
114 2011-03-21
114 2011-03-21

计数应指示的准确方式是:

on 2011-03-17 => 4 clicks / 2 unique visitors
on 2011-03-20 => 1 click / 1 unique visitor
on 2011-03-21 => 3 clicks / 2 unique visitors

如果我确实喜欢下面的查询

"INSERT INTO visitos SELECT cookieid,date FROM ",@tab," GROUP BY cookieid"

这通过正确计数给出了正确的点击/用户计数,但它忽略了日期,根据上表,它会告诉您 2011-03-17 => 4 次点击/2 名唯一访问者,但它忽略了点击/访问20 号,并且没有给出 20 号的计数。因为 cookie id 重复

用另一种方式

"INSERT INTO visitos SELECT cookieid,date FROM ",@tab," GROUP BY date"

它将给出所有点击/访问的日期,但计数结果是错误的,它将告诉 2011-03-17 => 4 次点击/4 名唯一访问者,通过将每次点击作为唯一用户获取,同时忽略 cookie id

任何人都可以帮助我编写 SQL 查询来同时按 cookie id 和日期对其进行分组

P.S "INSERT INTO visitos SELECT cookieid,date FROM ",@tab," GROUP BY date,cookieid"

也没用

存储过程

BEGIN
SET @tab = CONCAT("monitortable_",pr);
DROP TABLE IF EXISTS uniquevisitors;
CREATE TEMPORARY TABLE uniquevisitors (`cookieid` INT, `date` DATETIME);


**SET @sqlstring = CONCAT("(PLACE WHERE GROUPING QUERY SHOULD TAKE PLACE)INSERT INTO uniquevisitors SELECT cookieid,date FROM ",@tab," GROUP BY cookieid");**


PREPARE stmt FROM @sqlstring;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
DROP TABLE IF EXISTS uniquevisitorscount;
CREATE TEMPORARY TABLE uniquevisitorscount (`cnt` INT, `dat` DATETIME);
INSERT INTO uniquevisitorscount SELECT COUNT(cookieid) AS cnt ,DATE(date) AS dat FROM uniquevisitors;
DROP TABLE IF EXISTS nonuniquevisitcount;
CREATE TEMPORARY TABLE nonuniquevisitcount (`cnt` INT, `dat` DATETIME);
SET @sqlstring = CONCAT("INSERT INTO nonuniquevisitcount SELECT COUNT(cookieid) AS cnt ,DATE(date) AS dat

FROM ",@tab," GROUP BY DATE_FORMAT(date, '%y'),DATE_FORMAT(date, '%m'),DATE_FORMAT(date, '%d')");
PREPARE stmt FROM @sqlstring;
EXECUTE stmt;
SELECT un.cnt AS ucnt, nu.cnt AS cnt, un.dat AS dat FROM uniquevisitorscount un JOIN nonuniquevisitcount nu ON un.dat = nu.dat;
END$$

最佳答案

试试这个

“插入访问日期,计数(cookie_id)no_of_clicks,计数(不同的cookie_id)no_of_visitors来自”,@tab,“按日期分组”

关于mysql - 多分组SQL,点击和用户计数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26292559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com