powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с запросом
5 сообщений из 5, страница 1 из 1
Помогите с запросом
    #38925248
JurikDM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, уважаемые форумчане.
Помогите пожалуйста написать запрос. Необходимо из таблицы получить 3 максимальных значений по каждой группе.
Например таблица:
user_id value way id
4 5 1 1
1 10 1 2
2 30 1 3
3 20 1 4
1 50 2 5
2 40 2 6
3 60 2 7
2 70 3 8

Необходимо получить:
way user_id value id
1 2 30 3
1 3 20 4
1 1 10 2
2 3 60 7
2 1 50 5
2 2 40 6
3 2 70 8

Заранее спасибо!
...
Рейтинг: 0 / 0
Помогите с запросом
    #38925304
tadmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JurikDM,
если группа(?) это way

Код: plsql
1.
max(..) over (partition by way ...)
...
Рейтинг: 0 / 0
Помогите с запросом
    #38925331
JurikDM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, sorry, группа way.

А можно запрос целиком пожалуйста?
...
Рейтинг: 0 / 0
Помогите с запросом
    #38925386
tadmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JurikDM,


http://www.postgresql.org/docs/9.4/static/tutorial-window.html

http://www.sql.ru/forum/rules.aspx
Код: plaintext
1.
При написании сообщений с просьбой о составлении запроса - хорошим тоном считается предоставление скрипта на создание таблицы и заполнение ее тестовыми данными, а также ожидаемого результата выборки, если это не очевидно из вопроса. 

Попытайтесь его сами написать, приложите _portable_ запрос с данными, который можно вставить в консоль, приведите ошибки, которые возникли. Тогда вам, скорее всего, помогут.
...
Рейтинг: 0 / 0
Помогите с запросом
    #38926452
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3.5. Window Functions

If there is a need to filter or group rows after the window calculations are performed, you can use a sub-select. For example:

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT depname, empno, salary, enroll_date
FROM
  (SELECT depname, empno, salary, enroll_date,
          rank() OVER (PARTITION BY depname ORDER BY salary DESC, empno) AS pos
     FROM empsalary
  ) AS ss
WHERE pos < 3;


The above query only shows the rows from the inner query having rank less than 3.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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