Как выбрать записи DISTINCT из базы данных в Графане - PullRequest
0 голосов
/ 23 января 2019

Я использую Grafana и хочу выбрать записи DISTINCT из базы данных. Как я могу это сделать?

enter image description here

Запрос:

SELECT reference AS "Reference", reference_url AS "Reference URL" FROM daily_run_vehicle WHERE retries >= 5 GROUP BY reference, reference_url ORDER BY 1;

Но когда я пытаюсь:

SELECT DISTINCT (reference) AS "Reference", reference_url AS "References" FROM daily_run_vehicle WHERE retries >= 5 GROUP BY reference, reference_url ORDER BY 1;

Я получаю тот же результат.

data source, который я использую в Графане, - Postgres.

UPDATE

Результат, который я получаю, выглядит следующим образом:

enter image description here

Вы видите, что третья и четвертая записи имеют одинаковый первый столбец (ссылка). Я не хочу этого, я хочу показать только один.

Так должно быть:

enter image description here

1 Ответ

0 голосов
/ 23 января 2019

Вы получаете 4 результата, потому что SELECT DISTINCT возвращает строки, в которых значения различны для ВСЕХ выбранных полей. Так как комбинация reference и reference_url различна в строках 3 и 4, они все равно возвращаются в DISTINCT.

Чтобы сделать DISTINCT только для подмножества возвращаемых полей, используйте DISTINCT ON, чтобы указать, какие поля использовать для проверки уникальности, а затем список возвращаемых полей:

SELECT DISTINCT ON (reference) reference, reference_url
FROM daily_run_vehicle
WHERE retries >= 5
ORDER BY reference

Я удалил GROUP BY как DISTINCT ON с таким же порядком, как GROUP BY 1 ORDER BY 1; однако, если вы действительно хотите сгруппировать по обоим полям, тогда вам нужен DISTINCT ON (reference, reference_url), и в этом случае вам нужно вернуть 4 записи.

...