2014-09-22 42 views
0

我有一个SQL表,它有3列(ID,名称,日期时间)。选择具有相同的值的第一行和最后一行

下面是一个简单的例子:

ID |  Name |  Datetime   | 
============================================= 
1 | Test 1  | 2014-09-22 22:27:24 | 
2 | Test 223 | 2014-09-22 22:27:24 | 
3 | Test FAS | 2014-09-22 22:27:24 | 
4 | Test SSA | 2014-09-22 22:31:18 | 
5 | Test SSA | 2014-09-22 22:31:18 | 
6 | Test SSA | 2014-09-22 22:31:18 | 
7 | Test SSA | 2014-09-22 22:31:18 | 
8 | Test SSA | 2014-09-22 22:31:18 | 

对于所有条目的具有相同日期时间,我所需要的第一ID(其中,这个日期时间开始),也是最后一个ID(其中,此日期时间使用的最后一个时间)。

我试图寻找得到这个结果,并生成一个这样的数组正确的SQL命令:

[0] => Array 
     (
      [start] => 1 
      [end] => 3 
      [date] => 2014-09-22 22:27:24 
     ) 
[1] => Array 
     (
      [start] => 4 
      [end] => 8 
      [date] => 2014-09-22 22:31:18 
     ) 

可能有人给我一个解决方案,如何创建SQL命令?

谢谢!

+0

你说的“第一”是你的意思是最小(ID)。与“Last”一样,你的意思是Max(ID)? – JNevill 2014-09-22 21:02:10

+0

好吧,我不知道它被称为最小和最大ID,但是对于所有条目具有相同的日期时间,我需要min和max。 :) – emjay 2014-09-22 21:02:58

回答

3
SELECT 
MIN(ID) AS start, 
MAX(ID) AS end, 
COUNT(*) AS how_many, 
`Datetime` 
FROM 
your_table 
GROUP BY `Datetime` 
+0

这看起来非常好,而且效果很棒:)添加计数很容易吗?让我知道有多少个entrys? – emjay 2014-09-22 21:08:40

+0

是的,这很容易,看看我的编辑。 – fancyPants 2014-09-22 21:10:44

+0

谢谢fancyPants先生:) – emjay 2014-09-22 21:12:22

相关问题