Size: a a a

pgsql – PostgreSQL

2020 July 09

🌌[

🌌El.Randir/42ᅠ [AD]... in pgsql – PostgreSQL
Я предложил сделать как выше, только order by time desc
источник

🌌[

🌌El.Randir/42ᅠ [AD]... in pgsql – PostgreSQL
Но не уверен что отработает, если в селекте не было явной выборки этого поля
источник

VY

Victor Yegorov in pgsql – PostgreSQL
если по всей таблице то можно так:
SELECT DISTINCT ON (name) name, id FROM tab ORDER BY name, time DESC;
источник

🌌[

🌌El.Randir/42ᅠ [AD]... in pgsql – PostgreSQL
Victor Yegorov
если по всей таблице то можно так:
SELECT DISTINCT ON (name) name, id FROM tab ORDER BY name, time DESC;
а зачем DISTINCT ?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
это не DISTINCT, а DISTINCT ON
источник

🌌[

🌌El.Randir/42ᅠ [AD]... in pgsql – PostgreSQL
Разве не то же самое: удаляет дубликаты по полю
источник

VY

Victor Yegorov in pgsql – PostgreSQL
эм… вот вы хотите для каждого уникального name получить одну запись с самым свежим time. я это и написал
источник

🌌[

🌌El.Randir/42ᅠ [AD]... in pgsql – PostgreSQL
А, всё понял, он забирает только первую запись, остальные откидывает :?
Спасибон
источник

VY

Victor Yegorov in pgsql – PostgreSQL
не первую, порядок определятся ORDER BY условием
источник

🌌[

🌌El.Randir/42ᅠ [AD]... in pgsql – PostgreSQL
бля, орнул — неверное решение
Для них верным было

использование оконной функции макс или ласт, по времени
или, внимание
подсчёт кол-ва строк для каждого человека, если чётное = 2
если не чётное = 1
источник

VY

Victor Yegorov in pgsql – PostgreSQL
с оконной ф-цией у вас не будет по одной записи на каждое имя
источник

🌌[

🌌El.Randir/42ᅠ [AD]... in pgsql – PostgreSQL
Ну, это можно не мне сказать :D
источник

🌌[

🌌El.Randir/42ᅠ [AD]... in pgsql – PostgreSQL
Я предложил свой вариант, но без дистинкта, поэтому сюда отписал, закинул Ваш, тоже мимо
Правильный вариант, мол, кол-во строк или оконка :D
источник

VY

Victor Yegorov in pgsql – PostgreSQL
ну… тут можно и через LATERAL обойти (долго), и через подзапрос (в котором max(time) для имени берётся) соединить
источник

VG

Vasiliy Gusel in pgsql – PostgreSQL
Солидарен с Виктором, стоит подумать над корректной группировкой нескольких запросов
источник

VG

Vasiliy Gusel in pgsql – PostgreSQL
Но главное не перестараться, лучше даже почитать статьи о сложных запросах, что бы не возвращаться потом))
источник

2_

2flower _ in pgsql – PostgreSQL
Victor Yegorov
если по всей таблице то можно так:
SELECT DISTINCT ON (name) name, id FROM tab ORDER BY name, time DESC;
а это разве не больно? distinct очень тяжкая операция.
я только вчера перечитывал доклад Максима Богука, там как раз пример с distinct разбирался.
источник

i

iwanttobeleve in pgsql – PostgreSQL
Yaroslav Schekin
Ещё бы оно гуглилось, название-то неправильное. ;)
В документации, насколько я вижу, есть только фраза "VACUUM ANALYZE performs a VACUUM and then an ANALYZE for each selected table. " Но, конечно, из этого вывод о том, как оно работает в autovacuum, напрямую не следует.

А так — в исходниках:

https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/backend/postmaster/autovacuum.c;h=9c7d4b0c60e4bdb2df6dc21ef1882bd6a9106ba2;hb=HEAD#l3118

Который вызывает:

https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/backend/commands/vacuum.c;h=576c7e63e99a16b3b01c513c8151fb1fe5f60657;hb=HEAD#l447
Спасибо большое!
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
iwanttobeleve
Спасибо большое!
Да не за что! ;)
источник

NC

Nick Chp in pgsql – PostgreSQL
всем привет
источник