Articles of агрегированные функции

SQL-запрос для одновременного получения групповых и отдельных значений

У меня возникли проблемы с попыткой определить SQL-запрос для этой таблицы: Есть таблица пациентов и их показания веса, записанные при посещении со следующими колонками: ID пациента считывание веса ID посещения (один за посещение) Другими словами, если в двух записях два идентификатора посещения одинаковы, тогда два показания веса были сделаны в ту же дату посещения. У […]

Postgres LEFT JOIN with SUM, отсутствующие записи

Я пытаюсь получить счет некоторых типов записей в связанной таблице. Я использую левое соединение. Поэтому у меня есть запрос, который не совсем прав, и тот, который возвращает правильные результаты. Правильный запрос результатов имеет более высокую стоимость исполнения. Id нравится использовать первый подход, если я могу исправить результаты. (см. http://sqlfiddle.com/#!15/7c20b/5/2 ) CREATE TABLE people( id SERIAL, […]

Нужна оптимизация SQL (возможно, DISTINCT ON – причина?)

Связанный предыдущий вопрос: Выберите случайную запись из группы после группировки по значению (не столбцу)? Мой текущий запрос выглядит так: WITH points AS ( SELECT unnest(array_of_points) AS p ), gtps AS ( SELECT DISTINCT ON(points.p) points.p, m.groundtruth FROM measurement m, points WHERE st_distance(m.groundtruth, points.p) < distance ORDER BY points.p, RANDOM() ) SELECT DISTINCT ON(gtps.p, gtps.groundtruth, m.anchor_id) […]

В SQL, как мне получить все строки, где значение столбца является самым низким в таблице?

Я новичок в SQL, я использую этот запрос для поиска минимального значения в поле вес моей таблицы. SELECT product_id, MIN(weight) FROM table WHERE 1; Он показывает одно поле с минимальным значением, но только одно? Но у меня много продуктов с одинаковым минимальным весом. Могу ли я указать, что мне нужно показать все другие продукты?

Есть ли стандарт для вычисления агрегатной функции SQL?

Существует ли стандарт на реализацию SQL для нескольких вызовов одной и той же функции агрегата в том же запросе? Например, рассмотрим следующий пример, основанный на схеме популярного примера: SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)>1000 Предположительно, для вычисления значения SUM (OrderPrice) требуется время вычисления. Это затраты, понесенные для каждой ссылки на агрегатную функцию, […]

Почему агрегированные функции не допускаются в том, что условие

Я ищу разъяснения по этому поводу. Я пишу два запроса ниже: У нас есть таблица имени сотрудника с идентификаторами столбцов, именем, зарплатой 1. Select name from employee where sum(salary) > 1000 ; 2. Select name from employee where substring_index(name,' ',1) = 'nishant' ; Запрос 1 не работает, но Query 2 работает. По моему опыту развития, […]

Создать массив для значений из списка столбцов, извлеченных в Postgres

У меня есть следующий набор таблиц: id column_a column_b column_c 1 tft 2 tff 3 ftf Что при запросе: SELECT bool_or(column_a) AS column_a , bool_or(column_b) AS column_b , bool_or(column_c) AS column_c FROM tbl WHERE id IN (1,2); дает результат как: column_a column_b column_c tft Я хотел получить массив из результата как: [t,f,t] в Postgres. Пожалуйста, […]

Использование функции AVG () между двумя таблицами

У меня есть две таблицы, и мне нужно определить компанию, которая предлагает самую высокую среднюю зарплату для любой позиции. Мои таблицы: employer eID (primary key), eName, location position eID (primary key), pName (primary key), salary) Код, который я написал, определяет все средние зарплаты, превышающие один, но мне нужно найти только самую высокую среднюю зарплату по […]

Роллинг Daily Distinct Counts

У нас есть таблица со следующими столбцами: SESSION_ID USER_ID CONNECT_TS ————– ————— ————— 1 99 2013-01-01 2:23:33 2 101 2013-01-01 2:23:55 3 104 2013-01-01 2:24:41 4 101 2013-01-01 2:24:43 5 233 2013-01-01 2:25:01 Нам нужно получать определенное количество пользователей за каждый день и количество активных пользователей, которые определяются как пользователи, которые использовали приложение за последние […]

совокупность пустого набора результатов

Я хотел бы, чтобы агрегаты пустого набора результатов были равны 0. Я пробовал следующее: SELECT SUM(COALESCE(capacity, 0)) FROM objects WHERE null IS NOT NULL; Результат: sum —– (1 row) Subquestion: не работает ли это выше в Oracle, используя SUM(NVL(capacity, 0)) ?