gpt4 book ai didi

MySQL:从多列获取唯一计数

转载 作者:行者123 更新时间:2023-11-29 11:04:05 24 4
gpt4 key购买 nike

SELECT numTimesIndexLoaded, numTimesIndexLoadedUnique, numTimesResultsLoaded, numTimesResultsLoadedUnique, numTimesCTALoaded, numTimesCTALoadedUnique
FROM
(SELECT
sum(ctaSL.page = 'index') AS numTimesIndexLoaded,
sum(ctaSL.page = 'results') AS numTimesResultsLoaded,
sum(ctaSL.page = 'cta') AS numTimesCTALoaded,
count(distinct ctaSL.ip_address, ctaSL.page = 'index') AS numTimesIndexLoadedUnique,
count(distinct ctaSL.ip_address, ctaSL.page = 'results') AS numTimesResultsLoadedUnique,
count(distinct ctaSL.ip_address, ctaSL.page = 'cta') AS numTimesCTALoadedUnique
FROM
stats_page_loads AS ctaSL
WHERE ctaSL.campaign_id = ?
AND ctaSL.mode = ?
) t1

我有以下准备好的声明,我正在尝试获取网页的统计信息。目标是获得三个页面中每个页面加载次数的统计信息,以及三个页面中每个页面的唯一 IP 地址加载的次数。我对使用 unique 很陌生,所以甚至不确定它是否是正确的使用方法,但我没有得到正确的结果,所以我假设我使用了错误的方法。

我想我可以再做一个 SELECT 语句作为 t2,但试图避免这种情况,因为我必须添加 ?一遍又一遍地添加变量,我添加的变量越多,所以希望如果可能的话,将其浓缩为一个变量。

最佳答案

尝试:

count(DISTINCT CASE WHEN ctaSL.page = 'index' THEN ctaSL.ip_address END) AS numTimesIndexLoadedUnique,

其他情况也类似。这是有效的,因为如果没有任何 WHEN 子句匹配,则 CASE 返回 NULL,并且 COUNT 不计数 NULL

您的尝试没有成功,因为测试只是返回 01(具体取决于测试是否成功),而您只是计算 IP 的所有不同组合和那个 bool 值。它不会排除条件失败的行。

关于MySQL:从多列获取唯一计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41706657/

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