Size: a a a

pgsql – PostgreSQL

2020 December 26

AD

Artemiy Dubovoy in pgsql – PostgreSQL
Rustamov
когда пишу выражение полностью  тоже ошибку выдает
Скидывайте сразу ошибку
источник

R

Rustamov in pgsql – PostgreSQL
ERROR:  syntax error at or near "HAVING"
LINE 9: HAVING (1-SUM(likes::int)/NULLIF (SUM(dislikes:: int),0))*10...
источник

AD

Artemiy Dubovoy in pgsql – PostgreSQL
Rustamov
ERROR:  syntax error at or near "HAVING"
LINE 9: HAVING (1-SUM(likes::int)/NULLIF (SUM(dislikes:: int),0))*10...
Ну и весь запрос с having :)
источник

R

Rustamov in pgsql – PostgreSQL
SELECT title,  SUM(likes:: int) as "like" , SUM(dislikes:: int) as "dislike" ,
(1-SUM(likes::int)/NULLIF (SUM(dislikes:: int),0))*100 as "Different"
FROM youtube.trends
GROUP BY title
ORDER BY 4 ASC
HAVING (1-SUM(likes::int)/NULLIF (SUM(dislikes:: int),0))*100 = 30
источник

AD

Artemiy Dubovoy in pgsql – PostgreSQL
having должен идти перед order by
источник

R

Rustamov in pgsql – PostgreSQL
а в остальном запрос верный ?
источник

AD

Artemiy Dubovoy in pgsql – PostgreSQL
Вот единственно верный порядок выражений в запросе:
select  column_name(s)
from    table_name
where   condition
group by
       column_name(s)
having  condition
order by
       column_name(s);


В остальном запрос похож на правду
источник

R

Rustamov in pgsql – PostgreSQL
спасибо. почему спрашиваю про корректность, так как после запроса  ничего выбралось
источник

AD

Artemiy Dubovoy in pgsql – PostgreSQL
Ну, скорее всего, там ровно 30 нигде не получится. Попробуйте указать в having что-то типа … >= x and … <= y
источник

R

Rustamov in pgsql – PostgreSQL
скорее всего неправильно рассчитал. Спасибо
источник

R

R in pgsql – PostgreSQL
Привет всем. Как в timescaledb эффективно получать последнюю строку? Собираю данные с нескольких объектов. Если один объект не был в сети неделю, то соответственно запрос на получение последних данных от него обрабатывается ощутимо дольше
источник

s

sexst in pgsql – PostgreSQL
Потому что его нет в кэше скорее всего, отчего оно читается с диска
источник

s

sexst in pgsql – PostgreSQL
Посмотрите план выполнения запроса и сравните с "быстрым". Там же всё видно.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
только желательно с EXPLAIN (analyze, buffers) и track_io_timing=on сравнивать
источник

B

Biter in pgsql – PostgreSQL
Господа, простите, за нюбский вопрос…

Вот если происходит UPDATE строки, в которой фигурирует уникальное поле, то pg потребует исключительную блокировку на всю таблицу?
Или какую блокировку?
источник

SG

Sergey Gr in pgsql – PostgreSQL
Biter
Господа, простите, за нюбский вопрос…

Вот если происходит UPDATE строки, в которой фигурирует уникальное поле, то pg потребует исключительную блокировку на всю таблицу?
Или какую блокировку?
Блокировку на таблицу достаточную чтобы на момент выполнения запроса с таболцей ничего плохого не сделали (например не дропнули). Это явно не эксклюзивная блокировка на таблицу
источник
2020 December 27

B

Biter in pgsql – PostgreSQL
Sergey Gr
Блокировку на таблицу достаточную чтобы на момент выполнения запроса с таболцей ничего плохого не сделали (например не дропнули). Это явно не эксклюзивная блокировка на таблицу
А какая блокировка будет?
источник

B

Biter in pgsql – PostgreSQL
Ведь в момент UPDATE может быть изменено уникальное поле.
Должна, по идее, быть какая то вполне себе ощутимая блокировка.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Biter
Ведь в момент UPDATE может быть изменено уникальное поле.
Должна, по идее, быть какая то вполне себе ощутимая блокировка.
вы меняете часть строк (пусть даже все). на каждую изменённую строку берётся блокировка ( не на таблицу! ) и все, кто захочет изменить эти строки будет ждать завершения вашей транзакции
источник

B

Biter in pgsql – PostgreSQL
Victor Yegorov
вы меняете часть строк (пусть даже все). на каждую изменённую строку берётся блокировка ( не на таблицу! ) и все, кто захочет изменить эти строки будет ждать завершения вашей транзакции
Не не не, я это понимаю.
Но, мне кажется Вы не правы или я глубоко заблуждаюсь.
Допустим, есть 100 одновременных транзакций, они все меняют уникальное поле (не инкремент, хотя не знаю важно это или нет)…
Если будет блокировка у каждой по "строкам", а они все поменяли уникальное поле на одинаковое значение.
И что будет?
По Вашей логике, т.к. блокирока "строчная", то всем разрешат апдейт. Но это же не так, возникает ошибка нарушения уникальности.
Значит, блокировка не на уровне строк.

Опять извиняюсь, если чего недопонимаю, прошу пояснить…
источник