0

我想知道如何实现这样的查询。例如,我有下表,它跟踪来自不同 IP 地址的链接的点击:

id      link       ip
1       Link 1     100.100.1.1
2       Link 1     100.100.1.2
3       Link 2     100.100.1.3
4       Link 1     100.100.1.1
5       Link 3     100.100.1.4
6       Link 3     100.100.1.1

我想要做的是让所有唯一的 ip 点击同一个链接,所以结果应该如下所示:

id      link       ip
1       Link 1     100.100.1.1
2       Link 1     100.100.1.2
3       Link 2     100.100.1.3
5       Link 3     100.100.1.4
6       Link 3     100.100.1.1

我想我应该对表格进行分组,但这样做会从链接或 ip 列中删除重复项。是否可以将所有链接 1 IP、链接 2、IP、链接 3 IP 等分组。

希望这听起来不会太令人困惑。

4

2 回答 2

1

您可以使用以下方法执行此操作group by

select min(id) as id, link, ip
from t
group by link, ip;

在 MySQL 中,您还可以使用以下语法:

select id, link, ip
from t
group by link, ip;

whereidselect列表中但不在group by. 虽然允许,但我认为这是一个不好的习惯(在某些情况下此功能很有用)。

于 2013-08-02T18:27:49.463 回答
0

select distinct如果您只是希望查看列,也可以使用

不需要组

于 2013-08-02T18:44:02.430 回答