嗨,我有这个VISITS表
我想要实现的目标:
**affiliate_id** **unique visits count**
167 4
121 1
137 1
特殊条件是单个affiliate_id每天只能计算一次IP。
因此,对于visit_id 553和554,它只能被视为一次访问,因为它们具有相同的IP,相同的日期和相同的affiliate_id。
根据我的理解,我需要按ip,date和affiliate_id分组并计算,但不知道如何编写查询。
你们能指点我一些参考或见解来解决这个问题吗?
提前致谢!
-
使用链接示例SQL更新:
答案 0 :(得分:1)
根据您的要求,我认为您需要每个日期的不同ip和affiliate_id
$EventGrab |
Sort-Object -Property TimeWritten -Descending |
Where-Object {
$_.Message -like '*10.1.2.13*' -and
$_.Message -like '*LTC*'
} |
Select-Object TimeWritten, @{n='Account';e={
Select-String -InputObject $_.Message -Pattern 'Account Name:\s+(.*LTC.*)' |
Select-Object -Expand Matches |
ForEach-Object { $_.Groups[1].Value }
}} |
ConvertTo-Html |
Out-File C:\$fileDate
答案 1 :(得分:0)
如果我理解正确,
library(tidyverse)
DF %>%
select(matches("^OHC"))
# OHC_1 OHC_2 OHC_3 OHC_6
#Gene1 1 1 0 0
#Gene2 0 0 0 0
#Gene3 1 1 1 1
#Gene4 1 1 1 0
答案 2 :(得分:0)
您要做的是将给定affiliate_id
的唯一或不同ip的数量分组,因此您需要的唯一群组是affiliate_id
。使用计数计算唯一匹配,然后在添加DISTINCT
关键字
SELECT
affiliate_id, COUNT(DISTINCT ip) AS unique_visit_counts,
FROM tablename
GROUP BY affiliate_id
但是,由于您希望在当天使用它,因此您可能希望包含一个日期子句,例如:
DATE_FORMAT(date, "%y-%m-%d") AS `date`
这会将你的日期和时间戳变成YY-MM-DD格式的一天。
如果按照分组进行分组,您可以使用类似
之类的内容通过affiliate_id获取完整列表SELECT
affiliate_id,
COUNT(DISTINCT ip) AS unique_visit_counts,
DATE_FORMAT(date, "%y-%m-%d") AS `date`
FROM tablename
GROUP BY `date`, affiliate_id
或使用
之类的东西选择特定日期SELECT
affiliate_id,
COUNT(DISTINCT ip) AS unique_visit_counts,
FROM tablename
WHERE DATE_FORMAT(date, "%y-%m-%d") = '17-02-08'
GROUP BY affiliate_id