@NIKA_R

Почему возникает зацикливанние выполнения запроса к PostgreSQL в Google Colab?

Есть небольшая базочка
!apt install postgresql postgresql-contrib &>log
!service postgresql start
!sudo -u postgres psql -c "CREATE USER root WITH SUPERUSER"
!sudo -u postgres psql -c "CREATE USER postgre WITH SUPERUSER"
!sudo -u postgres psql -U postgres -c 'CREATE DATABASE test;'
....
Есть таблички
!sudo -u postgres psql -U postgres -d test -c 'CREATE TABLE Staff (staff_id SERIAL PRIMARY KEY, name VARCHAR(100), salary INT, email VARCHAR(50), birthday VARCHAR(30), jobtitle_id INT);'
!sudo -u postgres psql -U postgres -d test -c 'CREATE TABLE Jobtitles (jobtitle_id SERIAL PRIMARY KEY, name VARCHAR(100));'

В табличках данные, немного, всего 20-30 строк.
Есть простенькие запросы.

Например
!sudo -u postgres psql -U postgres -d test -c "SELECT email, COUNT(email) as count FROM Staff GROUP BY email HAVING COUNT(email) > 1;"
64f47dd3cd951522119454.png

Дубликаты в поле почта находятся верно, но только результат выводится бесконечно...

И так со всемы запросами
64f47cf71d986937426655.png

Как исправить?
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ответы на вопрос 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Попробуйте добавить индексы:
CREATE INDEX email_ix ON Staff(email);
CREATE INDEX jobtitle_id_ix ON Staff(jobtitle_id);


https://sqlize.online/sql/psql15/f988329f9d66d1560...

Это чтоб найти должности с самоя высокой зарплатой:
SELECT Jobtitles.name, salary
FROM Jobtitles
JOIN Staff ON Staff.jobtitle_id = Jobtitles.jobtitle_id
ORDER BY salary DESC
FETCH FIRST ROW WITH TIES;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы