@dba_ru

Страница 711 из 718
Andrey
24.10.2018
01:19:22
получилось реализовать через три вложенных SELECT’а, но это прям такое)
SELECT building_id, station_id, duration FROM buildings WHERE duration IN (SELECT min(duration) FROM buildings GROUP BY building_id);

но это работает только при условии уникальных 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 будет жить. Поприветствуем!

Александр будет жить. Поприветствуем!

С К будет жить. Поприветствуем!

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

Yaroslav
24.10.2018
07:51:38
http://sqlfiddle.com/#!9/d180f9/21
Ужас. И это в MySQL ещё и работает. ;)

lost
24.10.2018
07:58:50
Ужас. И это в MySQL ещё и работает. ;)
как это развидеть теперь?

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

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

Google
Iliya
24.10.2018
08:24:19
Перебери все схемы, таблицы и колонки. В колонках нужного типа ищи то что тебе надо.
Нужную схему нашел Как мне перебрать все схемы и колонки

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

Михаил Власов
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
Нужную схему нашел Как мне перебрать все схемы и колонки
Распечатай экран в SQLDeveloper, потом иди по таблицам и карандашиком вычёркивай.

Михаил Власов
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
А это имеет значение? Главное же какая база - оракл
Блен задачка с тупых собесов. Запрос по Системным таблицам ищет текстовые колонки, а затем из найденных таблиц делается выборка по этим колонкам. Но на деле этр долго и бесполезно, потому что в любой даже идиотско сделаеной системе всегда есть определенные таблицы, про которые знают компетентные и работающие с ними сотрудники. По этрй задаче гораздо проще найти этих сотров и выцепить у еих назваеия таблиц

С этими долбаными парметрами и тупой динамикой, хранящейся текстом

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
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); Не подскажете где копать? Куда ещё может смотреть проверка уникальности?

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

Al
24.10.2018
23:03:56
Ресинк последовательности делал. Значение SELECT nextval('table_id_seq'); корректно.
Давай я тебе буду гугл пересылать по порядку. https://hcmc.uvic.ca/blogs/index.php?blog=22&p=8105&more=1&c=1&tb=1&pb=1

Андрей
24.10.2018
23:06:15
Давай. Ссылка на эту документашку была ещё в треде на so.



Ресинк последовательности делал. Значение SELECT nextval('table_id_seq'); корректно.

Андрей
24.10.2018
23:32:24
https://pastebin.com/SUDCxFY0

Описания остальных полей пропустил. Важны?

Yaroslav
24.10.2018
23:41:28
Описания остальных полей пропустил. Важны?
Нет, по идее. Т.е. никаких триггеров нет? А если просто попробовать INSERT c этим id?

Андрей
24.10.2018
23:42:19
Аналогичный результат. duplicate key value violates unique constraint

Впервые с таким сталкиваюсь. Завтра будет возможность перезалить схему и данные, хочу разобраться в причинах. В тестовой среде не воспроизводится. Нет, триггеров нет.

Yaroslav
24.10.2018
23:45:26
Аналогичный результат. duplicate key value violates unique constraint
Интересно... а если: SET enable_indexscan = off; SET enable_bitmapscan = off; А затем повторить SELECT?

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
Нет, по идее. Т.е. никаких триггеров нет? А если просто попробовать INSERT c этим id?
Гыы. Инзерт должен иметь ид больше чем максимальное значение

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

Yaroslav
24.10.2018
23:59:18
Андрей
24.10.2018
23:59:50
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
Официальном мануале чего? PostgreSQL — точно нет.
Если не думать то да. А если обратить внимание то написано, the next available value that's higher than any existing primary key in the sequence.

Yaroslav
25.10.2018
00:05:28
Если не думать то да. А если обратить внимание то написано, the next available value that's higher than any existing primary key in the sequence.
Написано где? Вам продемонстрировать контрпример, или Вы сами документацию PostgreSQL почитаете?

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

А не пхал в середину и удивлялся

Страница 711 из 718