首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql根据另一列和组结果计数不同的行

mysql根据另一列和组结果计数不同的行
EN

Stack Overflow用户
提问于 2017-01-24 01:33:42
回答 1查看 1.1K关注 0票数 2

我有一张记录在案的搜索表。这些列是IP、query、时间戳。我想要的是按“查询”对数据进行分组,并计算该“查询”的IP地址唯一实例的数量。这是那张表的一个样本:

代码语言:javascript
复制
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查询:

代码语言:javascript
复制
SELECT query, COUNT(query) as num FROM searches WHERE timestamp > ".$sometimestamp." GROUP BY query

我的目标是检索以下数据:

代码语言:javascript
复制
oranges [2]
bananas [1]
apples  [1]
pears   [1]

我的查询是接近的,但是它会产生:

代码语言:javascript
复制
oranges [3]  <-- IP address 1.2.3.4 searched for this twice, counting 3  total
bananas [1]
apples  [1]
pears   [1]

我需要一种方法,它只对每个IP地址计算一次唯一的搜索查询(但不要忽略来自同一个IP地址的多个唯一查询)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-24 01:37:34

使用计数不同:

代码语言:javascript
复制
SELECT 
    `query`, 
    COUNT(DISTINCT `IP`) as num 
FROM `searches`
WHERE `timestamp` > ".$sometimestamp."
GROUP BY `query`
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41818610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档