2014-09-22 3 views
0

У меня есть таблица 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 | 

Для всех записи, которая имеет тот же DateTime, я нужен первый идентификатор (где начинается это дата и время), а также последний идентификатор (где этот DateTime используется последним время).

Я пытаюсь найти правильный 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

Вы говорите «первым», что вы имеете в виду Min (ID). То же самое с «Last», вы имеете в виду Max (ID)? – JNevill

+0

Хорошо, я не знал, что он называется min и max ID, но да для всех записей, которые имеют одинаковое время доступа, мне нужен минимум и макс. :) – emjay

ответ

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

Это выглядит действительно хорошо и отлично работает :) Легко ли добавить счет? так что я знаю, сколько записей? – emjay

+0

Да, это легко, см. Мое редактирование. – fancyPants

+0

Спасибо Mr. fancyPants :) – emjay

Смежные вопросы