
Andrey
24.10.2018
01:19:22
но это работает только при условии уникальных duration
А, все вообще тривиально
-- visit ForgeRock.com for details on the Open Identity Stack
-- sqlfiddle.com is built with OpenIDM
SELECT building_id,
(SELECT min(duration)
FROM buildings bi
WHERE bi.building_id=b.building_id) as min_duration
,
(SELECT bi2.station_id
FROM buildings bi2
WHERE bi2.duration=min_duration
AND bi2.building_id = b.building_id ) as min_station_id
FROM buildings b
GROUP BY building_id;
Никаких ограничений, неуникальные duration, все что угодно.

Google

Andrey
24.10.2018
01:24:58
http://sqlfiddle.com/#!9/d180f9/21

Terminator
24.10.2018
05:58:39
@mamaevali будет жить. Поприветствуем!
@Maxpain177 будет жить. Поприветствуем!
Александр будет жить. Поприветствуем!
С К будет жить. Поприветствуем!

Julia
24.10.2018
07:25:30

Viktor
24.10.2018
07:41:18
А еще на оконные функции посмотреть - MIN(duration) OVER(partititon by building_id ). тогда несколько раз в таблицу одну лезть не надо будет

Ilia
24.10.2018
07:45:32

Yaroslav
24.10.2018
07:51:38

lost
24.10.2018
07:58:50
и запрос этот развалится, кстати, как раз на неуникальных duration, ибо скалярка может возвращать только 1 значение, а не набор строк, что как раз таки во второй скалярке и не гарантируется

Iliya
24.10.2018
08:22:26
Всем привет, возник вопрос
У меня есть оракловая база, в ней куча таблиц с разными параметрами, а некоторые вообще пустые
Как мне найти таблицу в которой есть параметры с определенным именем или значением
Просто мне из всей этой базы, надо вытянуть небольшое количество значений, но я даже не знаю где их искать - в какой таблице

Ilya
24.10.2018
08:23:48

Google

Iliya
24.10.2018
08:24:19

Ilya
24.10.2018
08:24:35

Iliya
24.10.2018
08:25:28
Запросом.
это понятно
как сделать запрос по всем таблицам сразу

Ilya
24.10.2018
08:25:37

Михаил Власов
24.10.2018
10:15:56

Iliya
24.10.2018
10:17:03

Михаил Власов
24.10.2018
10:17:43
Не хорошо отвечать вопросом на вопрос.
select s.owner, s.segment_name, s.segment_type, ((s.BYTES / 1024)/1024) / 1024
from dba_segments s

Iliya
24.10.2018
10:30:37
Не хорошо отвечать вопросом на вопрос.
Знаю, изнивиняюсь, но просто не совсем понял причем тут подсистема, вопрос в смысле на какой оси крутится бд?
То я не знаю, база не моя, мне только креды дали и тнс

Михаил Власов
24.10.2018
10:33:10
Если бы быль Парус (бд оракл), я б помог явно из схемы таблички вытащить.

Ilia
24.10.2018
10:33:27

Михаил Власов
24.10.2018
10:33:40
У каждого приложения, что работает с бд, могут быть свои нюансы.

Ilia
24.10.2018
10:34:38

Кирилл
24.10.2018
11:21:49
Можно через конкатенацию из dba_tables.
Полученные скрипты в spool, а потом листаешь получившийся лог

Natali
24.10.2018
12:13:04
А это имеет значение?
Главное же какая база - оракл
Блен задачка с тупых собесов. Запрос по Системным таблицам ищет текстовые колонки, а затем из найденных таблиц делается выборка по этим колонкам. Но на деле этр долго и бесполезно, потому что в любой даже идиотско сделаеной системе всегда есть определенные таблицы, про которые знают компетентные и работающие с ними сотрудники. По этрй задаче гораздо проще найти этих сотров и выцепить у еих назваеия таблиц
С этими долбаными парметрами и тупой динамикой, хранящейся текстом

Iliya
24.10.2018
12:14:19

Natali
24.10.2018
12:14:20
Если у вас вопрос с собеса-не идите в эту организацию. Тупой собпс-тупая организация

Iliya
24.10.2018
12:15:20

Google

Natali
24.10.2018
12:15:32
Пфф
Ну тогда напиши этот запрос по системным талицам) выше уже советовали)

Ilia
24.10.2018
12:19:10

Fike
24.10.2018
12:21:51

Iliya
24.10.2018
12:27:18
Самое смешное, что как оказалось...нужных данных в базе нет :(

Михаил Власов
24.10.2018
12:55:53
Аудит трейл на все включить, неделю покрутить. И вот вам данные. Кто где и что.

Андрей
24.10.2018
22:44:22
Доброго времени суток.
Есть PgSQL 10.5. В БД существует непустая таблица с ключом по id::int с дефолтным значением:
nextval('table_id_seq'::regclass)
При попытке сделать INSERT строки с уникальным id плюётся
duplicate key value violates unique constraint
, хотя такой записи в таблице не существует, SELECT по id выдаёт 0 rows, транзакций на таблице тоже не висит.
REINDEX, DROP INDEX для таблицы результата не принесли. Аналогично не помогло
SELECT pg_catalog.setval('schema.table_id_seq', <последний_id>, true);
Не подскажете где копать? Куда ещё может смотреть проверка уникальности?

Al
24.10.2018
22:48:06

Андрей
24.10.2018
22:54:13
Ресинк последовательности делал. Значение SELECT nextval('table_id_seq'); корректно.

Al
24.10.2018
23:03:56

Андрей
24.10.2018
23:06:15
Давай. Ссылка на эту документашку была ещё в треде на so.
Ресинк последовательности делал. Значение SELECT nextval('table_id_seq'); корректно.

Yaroslav
24.10.2018
23:13:28
Доброго времени суток.
Есть PgSQL 10.5. В БД существует непустая таблица с ключом по id::int с дефолтным значением:
nextval('table_id_seq'::regclass)
При попытке сделать INSERT строки с уникальным id плюётся
duplicate key value violates unique constraint
, хотя такой записи в таблице не существует, SELECT по id выдаёт 0 rows, транзакций на таблице тоже не висит.
REINDEX, DROP INDEX для таблицы результата не принесли. Аналогично не помогло
SELECT pg_catalog.setval('schema.table_id_seq', <последний_id>, true);
Не подскажете где копать? Куда ещё может смотреть проверка уникальности?
Покажите \d таблицы, что Вы конкретно делаете, и полный текст ошибки.
И как Вы проверяете, что записи действительно нет, и то, как проверяете отсутствие других транзакций.

Андрей
24.10.2018
23:32:24
https://pastebin.com/SUDCxFY0
Описания остальных полей пропустил. Важны?

Yaroslav
24.10.2018
23:41:28

Андрей
24.10.2018
23:42:19
Аналогичный результат. duplicate key value violates unique constraint
Впервые с таким сталкиваюсь. Завтра будет возможность перезалить схему и данные, хочу разобраться в причинах. В тестовой среде не воспроизводится.
Нет, триггеров нет.

Yaroslav
24.10.2018
23:45:26

Google

Андрей
24.10.2018
23:48:59
0 rows . До этого были включены по дефолту.

Al
24.10.2018
23:51:55

Yaroslav
24.10.2018
23:53:02
0 rows . До этого были включены по дефолту.
А стоп, ведь необязательно у Вас использовался index scan (вдруг таблица маленькая или статистика не актуальная).
Что, если теперь "RESET ALL;" и "EXPLAIN (ANALYZE, BUFFERS) select * from table where id=54893819;"?

Андрей
24.10.2018
23:56:10
QUERY PLAN
-----------------------------
Index Scan using table_key on table (cost=0.56..8.58 rows=1 width=2225) (actual time=0.020..0.020 rows=0 loops=1)
Index Cond: (id = 54893819)
Buffers: shared hit=4
Planning time: 0.137 ms
Execution time: 0.055 ms

Al
24.10.2018
23:58:30

Андрей
24.10.2018
23:58:52
А если почитать внимательно?
С внимательностью согласен, есть сейчас проблемы, надо поспать. Есть не выполненные рекомендации по ссылке? Текущие значения MAX ключа в таблице и nextval в последовательности верны.

Yaroslav
24.10.2018
23:59:18

Андрей
24.10.2018
23:59:50

Yaroslav
25.10.2018
00:00:15

Al
25.10.2018
00:00:32

Андрей
25.10.2018
00:00:35
Да, указываю.

Yaroslav
25.10.2018
00:01:20

Al
25.10.2018
00:01:41

Yaroslav
25.10.2018
00:02:39
Официальном?
Официальном мануале чего? PostgreSQL — точно нет.

Андрей
25.10.2018
00:03:59
Проверил ещё раз:
server=# SELECT last_value FROM table_id_seq;
last_value
------------
54893819
(1 row)
server=# SELECT MAX(id) FROM table;
max
----------
54893818
(1 row)

Al
25.10.2018
00:04:24

Yaroslav
25.10.2018
00:05:28

Al
25.10.2018
00:05:43
Но я бы выставил сначала the_primary_key_sequence на правильное значение, а потом попробовал сделать инзерт со значением выше.
А не пхал в середину и удивлялся