选择具有相同值的第一行和最后一行

时间:2014-09-22 20:59:45

标签: php mysql sql datetime

我有一个sql表,它有3列(ID,Name,Datetime)。

这是一个简短的例子:

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命令?

谢谢!

1 个答案:

答案 0 :(得分:3)

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