Запитання з тегом «greatest-n-per-group»

Використовуйте це для проблем, які передбачають повернення одного або декількох рядків з кожної групи в наборі даних. Незважаючи на назву, цей тег підходить для * мінімум- * та * максимум- * для групових запитів.

6
Отримання n рядків у групі
Мені часто потрібно вибрати ряд рядків з кожної групи в наборі результатів. Наприклад, я можу захотіти перерахувати найвищі або найнижчі значення останніх замовлень на одного клієнта. У більш складних випадках кількість рядків для списку може змінюватися в залежності від групи (визначається атрибутом запису групування / батьків). Ця частина, безумовно, необов'язкова …


6
Як я ефективно отримую "останній відповідний рядок"?
У мене є схема запитів, яка повинна бути дуже поширеною, але я не знаю, як написати ефективний запит для цього. Я хочу переглянути рядки таблиці, які відповідають "найновішій даті не після" рядків іншої таблиці. inventoryСкажімо, у мене є таблиця, яка представляє інвентар, який я тримаю в певний день. date | …

3
Чи існує в PostgreSQL безпечна для типу перша () сукупна функція?
Повне запитання перепишіть Я шукаю першу () сукупну функцію. Тут я знайшов щось, що майже працює: 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_STAFF 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
Як вибрати перший рядок із з'єднання, який повертає кілька рядків у первинному ключі
Це пов’язано з цим питанням: Об’єднання декількох таблиць призводить до повторень У мене є дві таблиці, до яких я приєднуюся. Вони поділяють ключ. Таблиця осіб має одне ім’я на первинний ключ, але в таблиці електронних повідомлень є кілька електронних листів на 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.