Здравствуйте!
Postgresql изучаю из любопытства и проф. интересов. и на кое каком примере у меня возникла проблема в реализации, вот собственно запрос:
SELECT * FROM (SELECT tablelink FROM tarifs WHERE tarif_id = 4) AS alias_x WHERE alias_x.id = 80
Суть такова, пытаюсь в подзапросе вытащить из таблицы tarifs поле tablelink (character verying) и затем уже сделать select * по этой таблице, но к сожалению что то не выходит.
Прошу помощи! Как это возможно реализовать?
Заранее спасибо!
CREATE TABLE sample ( id int, num int, cond BOOLEAN );
INSERT INTO sample (id, num, cond) VALUES (1, 100, true), (1, 20, true), (1, 50, false), (1, 75, false), (2, 20, false), (2, 80, true), (2, 50, false), (1, 10, true);
Выводим сумму num для каждого id
SELECT id, SUM(num) FROM sample GROUP BY id; id | sum ----+----- 2 | 150 1 | 255
Здесь тоже самое, но с условием, что cond = true
SELECT id, SUM(num) AS sum_with_true_cond FROM sample WHERE cond = true GROUP BY id; id | sum_with_true_cond
CREATE TABLE sample ( first_column int, second_column int );
Нужно сделать выборку с условием DISTINCT ON ( first_column )
Но при этом postgresql требует в ORDER BY первым полем ставить first_column
А мне нужна сортировка совсем по другому полю ( second_column ).
Можно ли такое реализовать средствами sql в postgresql не прибегая к вложенным запросам ?
Привет всем. Помнится мне, что в Oracle была возможность запихать рисунок в базу данных с удаленного хоста и извлекать его из нее по мере необходимости.
После поисков по инету нашел следующий рецепт (как я понял, данный метод используется только для хранения изображений):
CREATE TABLE image ( name text, raster oid ); INSERT INTO image (name, raster) VALUES ('beautiful image', lo_import('/etc/motd')); SELECT lo_export(image.raster, '/tmp/motd') FROM image WHERE name = 'beautiful image';
Добрый день. Кто-нибудь мне подскажет, существует ли в Postgres возможность проверки аргументов функции внутри функции? То есть, например, есть функция func (a,b). Есть вероятность, что параметр b может быть не передан. Как проверить параметры внутри функции? Существует ли такая возможность?
Делаем например склейку полей в одно ФИО:
(((c.fio_f::text || ' '::text) || c.fio_i::text) || ' '::text) || c.fio_o::text AS fio
Если хотя бы одно из значений NULL, то вся строчка будет NULL, что не есть хорошо.
Как эту проблему обойти?
Добрый день!
Я не так давно работаю с postgreSQL и поэтому возможно вопрос глупый но все же...
Хотелось бы знать есть ли возможность обходить ошибку:
'db_name' is being accessed by other users
Ситуация возникает при попытке создать новую базу данных на основе существующей 'db_name'. Собственно вот сам запрос:
CREATE DATABASE 'new_db_name' OWNER='new_generated_user' TEMPLATE='db_name'
Саму ошибку я понимаю, что она из себя представляет. Но хотелось бы знать возможно ли все же выполнить этот запрос не смотря на возникающую ошибку?
Такая ситуация: есть две базы данных на одном сервере у этих двух баз есть одинаковые таблицы. Можно ли эти две таблицы синхронизировать в самом PostgreSQL не прибегая к внешним скриптам, усложняя задачу это нужно делать по запросу есть ли в PostgreSQL какой нибудь планировщик? Впринцепе набор запросов для обновления у меня есть только вот я не знаю как подключиться к двум базам одновременно и выполнить запрос?
CREATE TABLE tst ( id serial, col1 int ); CREATE TABLE tst_child ( col2 int ) INHERITS(tst);
Делая INSERT в tst_child я автоматически получаю запись в tst.
Но возможно ли сделать вставку в tst_child, уже как дополнение к существующей записи в tst,
или другого варианта, как удалить запись в tst, затем INSERT в tst_child нет ?
Таблица 1000 стобцов типа int.
Время вставки 10000 строк - 35 секунд.
Для Mysql те же операции - 16 секунд.
Можно ли догнать и перегнать Mysql?