Как сгруппировать, включив столбец UID в новую таблицу - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь сгруппировать некоторые данные по следующему запросу, но мне также нужно добавить столбец uid из таблицы a_import.veg в таблицу c_schema.worst_case, которая содержит уникальные значения. Насколько я знаю, я не могу добавить это, как обычно, группа group by не работает должным образом, так как она берет все уникальные идентификаторы в новой таблице ... Есть ли способ сделать это?

CREATE TABLE IF NOT EXISTS c_schema.worst_case
as SELECT back_str, ahead_str, substr(weather_case, 1, 4), min(min_dist) as min_dist
FROM a_import.veg
GROUP BY back_str, ahead_str, substr(weather_case, 1, 4)
ORDER BY back_str, ahead_str;

1 Ответ

0 голосов
/ 17 марта 2020

Я предполагаю, что вы хотите distinct on:

SELECT DISTINCT ON (back_str, ahead_str, substr(weather_case, 1, 4)) v.*
FROM a_import.veg v
ORDER BY back_str, ahead_str, substr(weather_case, 1, 4), min_dist;

(выберите столбцы, которые вы действительно хотите.)

На самом деле, Postgres теперь поддерживает LEFT(), так что вы можете сократить это до:

SELECT DISTINCT ON (back_str, ahead_str, LEFT(weather_case, 4)) v.*
FROM a_import.veg v
ORDER BY back_str, ahead_str, LEFT(weather_case, 4), min_dist;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...