У меня есть вопрос для SQL Group By ЗаявлениеSQL Group By Заявление
Первый Это мой стол -> temp_data
id | a_id | date_time | length | <br>
1074 | 3 | 2016-12-07 09:13:13.490 | 1.036013 | <br>
1075 | 1 | 2016-12-07 09:13:13.690 | 1.699601 | <br>
1076 | 0 | 2016-12-07 09:13:13.867 | 2.110443 | <br>
1077 | 3 | 2016-12-07 09:13:14.490 | 1.027660 | <br>
1078 | 1 | 2016-12-07 09:13:14.690 | 1.742645 | <br>
1079 | 0 | 2016-12-07 09:13:14.867 | 2.121963 | <br>
1080 | 2 | 2016-12-07 09:13:18.390 | 4.008482 | <br>
Я пытаюсь выберите Ид, a_id, дата_время, длина для 3-х различных порядка a_id по идентификатору возрастанию поэтому я использую этот
SELECT DISTINCT
a_id,
Min(id) id,
Min(Last_Data.lenght) lenght,
(Select date_time from temp_data
where temp_data.id = Min(Last_Data.id)) last_time
FROM (
SELECT *
FROM temp_data
where id >= 1074 and id <= 1080
) Last_Data
GROUP BY a_id
order by id asc
в результате
id | a_id | last_time | length | <br>
1074 | 3 | 2016-12-07 09:13:13.490 | 1.013928 | <br>
1075 | 1 | 2016-12-07 09:13:13.690 | 1.699601 | <br>
1076 | 0 | 2016-12-07 09:13:13.867 | 2.110443 | <br>
Я получаю неправильное значение длины для id. Как я могу решить эту проблему?
P.S. : Сначала я получаю 3 разных a_id в этой таблице. Затем я использую select top 3 * statement. Потому что два одинаковых a_id могут поступать последовательно. Например
id | a_id | date_time | length | <br>
1074 | 1 | 2016-12-07 09:13:13.490 | 1.013928 | <br>
1075 | 1 | 2016-12-07 09:13:13.690 | 1.699601 | <br>
выбирает Ваш запрос 'last_time', но нет такого столбца в указанном результате ... Также другой порядок столбцов. – jarlh
@jarih Я исправлю это – BK52
, с какими RDMS вы используете? Ответ может зависеть от этого. – trincot