powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / агрегатные функции - хочу LAST, как в Access-e
6 сообщений из 6, страница 1 из 1
агрегатные функции - хочу LAST, как в Access-e
    #32053802
max_try
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим, есть куча почти одинаковых записей. Мне нужно сгруппировать по одному полю, а для всех остальных повыбирать хотя бы одно значение, предпочтительнее всего последнее (порядок сортировки значения не имеет). В access-е делал так:

select Pole1, last (Pole2) from sometable
group by Pole1

А как такую же чучу отчебучить в SQL сервере?
...
Рейтинг: 0 / 0
агрегатные функции - хочу LAST, как в Access-e
    #32053825
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем не устраивает
select Pole1, max(Pole2) from sometable group by Pole1
или
select Pole1, min(Pole2) from sometable group by Pole1

раз "порядок сортировки значения не имеет"
...
Рейтинг: 0 / 0
агрегатные функции - хочу LAST, как в Access-e
    #32053874
max_try
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не, в записи кроме поля 2 есть еще вагон полей, мне нужно получить одну существующую полную запись, соответствующую каждому из значений поля 1, причем желательно последнюю добавленную.
...
Рейтинг: 0 / 0
агрегатные функции - хочу LAST, как в Access-e
    #32053889
max_try
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сам себе отвечу:

select c1 as q1,
(select top 1 c2 from Table1 where c1=Alias1.c1 order by c2 desc) as q2,
(select top 1 c3 from Table1 where c1=Alias1.c1 order by c2 desc) as q3,
(select top 1 c4 from Table1 where c1=Alias1.c1 order by c2 desc) as q4,
(select top 1 c5 from Table1 where c1=Alias1.c1 order by c2 desc) as q5
from Table1 as Alias1
GROUP BY c1

Выдает именно то, что и хотелось получить. Только вот страшновато становится от такого количества вложенных селектов, особенно если в исходной таблице 1000000 записей по 30 полей. Может, можно как-то поэффективнее?
...
Рейтинг: 0 / 0
агрегатные функции - хочу LAST, как в Access-e
    #32053947
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А первичного ключа конечно же нет ?
...
Рейтинг: 0 / 0
агрегатные функции - хочу LAST, как в Access-e
    #32053950
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
думаю пойдет....
Код: plaintext
1.
2.
3.
SELECT b.*
FROM (SELECT c1 ,MAX(c2) FROM Table1 GROUP BY c1 ) a
         join Table1 b on a.c1=b.c1 and a.c2=b.c2
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / агрегатные функции - хочу LAST, как в Access-e
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]