从具有相同值的表中选择,但按其差异进行分组

时间:2015-02-01 22:59:47

标签: mysql database

例如,我有一个像(我改变我的例子)的表:

 +---------------------+
 | starttime   IP      |
 +---------------------+
 | 1          a        |
 | 2          a        |
 | 3          a        |
 | 5          a        |
 | 1          b        |
 | 2          b        |
 | 1          c        |
 | 10         c        |
 +---------------------+

首先,我将此表分组为相同的IP,因此我得到组a,组b,组c。

在a组中,最大统计时间为5,最小开始时间为1,5-1 = 4> 2.

组b中的

,max为2,最小开始时间为1,2-1 = 1 <2。

组c中的

,max为10,最小值为1,10-1 = 9> 2。

我只想找到max starttime-minimux stattime&gt; 2的组。 我想得到结果:

 +---------------------+
 | starttime   IP      |
 +---------------------+
 | 1          a        |
 | 2          a        |
 | 3          a        |
 | 5          a        |
 | 1          c        |
 | 10         c        |
 +---------------------+

1 个答案:

答案 0 :(得分:1)

我们假设您的表名为表格

select * from table where "IP" in (select "IP" from table group by "IP" having max(starttime)-min(starttime)>2);

这应该会给你预期的结果。