我有一张记录在案的搜索表。这些列是IP、query、时间戳。我想要的是按“查询”对数据进行分组,并计算该“查询”的IP地址唯一实例的数量。这是那张表的一个样本:
TABLE: SEARCHES
IP | query | timestamp
1.2.3.4 oranges 1485215625
1.2.3.5 bananas 1485215643
1.2.3.4 oranges 1485215655
1.2.3.6 apples 1485215662
1.2.3.7 oranges 1485215711
1.2.3.7 pears 1485215730我使用以下mysql查询:
SELECT query, COUNT(query) as num FROM searches WHERE timestamp > ".$sometimestamp." GROUP BY query我的目标是检索以下数据:
oranges [2]
bananas [1]
apples [1]
pears [1]我的查询是接近的,但是它会产生:
oranges [3] <-- IP address 1.2.3.4 searched for this twice, counting 3 total
bananas [1]
apples [1]
pears [1]我需要一种方法,它只对每个IP地址计算一次唯一的搜索查询(但不要忽略来自同一个IP地址的多个唯一查询)。
发布于 2017-01-24 01:37:34
使用计数不同:
SELECT
`query`,
COUNT(DISTINCT `IP`) as num
FROM `searches`
WHERE `timestamp` > ".$sometimestamp."
GROUP BY `query`https://stackoverflow.com/questions/41818610
复制相似问题