Вопросы с тегом «greatest-n-per-group»

6
Получение n строк на группу
Мне часто нужно выбирать количество строк из каждой группы в наборе результатов. Например, я мог бы хотеть перечислить 'n' самые высокие или самые низкие недавние значения заказа на клиента. В более сложных случаях количество строк в списке может варьироваться в зависимости от группы (определяется атрибутом записи группировки / родителя). Эта …


6
Как эффективно получить «самую последнюю соответствующую строку»?
У меня есть шаблон запроса, который должен быть очень распространенным, но я не знаю, как написать эффективный запрос для него. Я хочу посмотреть строки таблицы, которые соответствуют «самой последней дате, а не после» строк другой таблицы. У меня есть таблица, inventoryскажем, которая представляет инвентарь, который я держу в определенный день. …

3
Есть ли в PostgreSQL агрегатная функция first-) безопасной для типов?
Полный вопрос переписать Я ищу агрегатную функцию First (). Здесь я нашел то, что почти работает: CREATE OR REPLACE FUNCTION public.first_agg ( anyelement, anyelement ) RETURNS anyelement LANGUAGE sql IMMUTABLE STRICT AS $$ SELECT $1; $$; -- And then wrap an aggregate around it CREATE AGGREGATE public.first ( sfunc = …

3
Выберите максимальную или последнюю дату
Вот две таблицы. ШКОЛЬНЫЕ ВЕЩИ SCHOOL_CODE + STAFF_TYPE_NAME + LAST_UPDATE_DATE_TIME + PERSON_ID ================================================================= ABE Principal 24-JAN-13 111222 ABE Principal 09-FEB-12 222111 ЛИЦА PERSON_ID + NAME ================= 111222 ABC 222111 XYZ Вот мой запрос оракула. SELECT MAX(LAST_UPDATE_DATE_TIME) AS LAST_UPDATE, SCHOOL_CODE, PERSON_ID FROM SCHOOL_STAFF WHERE STAFF_TYPE_NAME='Principal' GROUP BY SCHOOL_CODE, PERSON_ID ORDER BY …

4
Как выбрать первую строку в объединении, которое возвращает несколько строк в первичном ключе
Это связано с этим вопросом: объединение нескольких таблиц приводит к дублированию строк У меня есть две таблицы, к которым я присоединяюсь. Они разделяют ключ. Таблица person имеет одно имя на первичный ключ, но таблица email имеет несколько электронных писем на personId. Я хочу показать только первое письмо на человека. В …


2
Эффективный запрос для получения наибольшего значения для группы из большой таблицы
Учитывая таблицу: Column | Type id | integer latitude | numeric(9,6) longitude | numeric(9,6) speed | integer equipment_id | integer created_at | timestamp without time zone Indexes: "geoposition_records_pkey" PRIMARY KEY, btree (id) Таблица содержит 20 миллионов записей, что, по большому счету , не так много. Но это делает последовательное сканирование …

2
Как сделать DISTINCT ON быстрее в PostgreSQL?
У меня есть таблица station_logsв базе данных PostgreSQL 9.6: Column | Type | ---------------+-----------------------------+ id | bigint | bigserial station_id | integer | not null submitted_at | timestamp without time zone | level_sensor | double precision | Indexes: "station_logs_pkey" PRIMARY KEY, btree (id) "uniq_sid_sat" UNIQUE CONSTRAINT, btree (station_id, submitted_at) Я …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.