Сохранен 509
https://2ch.hk/pr/res/1781628.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Распределённый транзакционный баз данных тред /sql/

 Аноним 19/08/20 Срд 14:20:47 #1 №1781628 
15847366478540.jpg
Очередной баз данных тред,
в котором мы
-Выслушиваем, почему в шапке по-прежнему отсутствует инфа для вкативания
-Разбираемся, почему PostgreSQL - не Oracle
-Пытаемся понять, зачем нужен Тырпрайс, если есть бесплатный опенсурс
-Обсуждаем, какие новые тенденции хранения данных появляются в современном цифровом обещстве
-Решаем всем тредом лабы для заплутавших студентов и задачки с sql-ex для тех, у кого завтра ПЕРВОЕ собеседование
-Анализируем, как работает поиск вконтакте
-Игнорируем конкаренси-шизика, не понимающего, зачем базы данных нужны
-И просто хорошо проводим время, обсирая чужой код, не раскрывая, как писать правильно

Поехали!

Предыдущий тонет здесь: >>1638710 (OP)
Аноним 19/08/20 Срд 14:25:30 #2 №1781640 
Перекатил вашу хуйню.
Аноним 19/08/20 Срд 15:03:08 #3 №1781686 
15896402741520.jpg
>>1781640
спасибо, няша
Аноним 19/08/20 Срд 16:49:42 #4 №1781876 
а оракл девелопер только по регистрации можно скачать?
Аноним 19/08/20 Срд 16:57:03 #5 №1781883 
>>1781876
Зарегайся с 10-минутной почти, и скачивание сразу начнётся по ссылке.
Аноним 19/08/20 Срд 16:59:16 #6 №1781886 
>>1781883
Окей, спасибо
Для пользования не надо авторизироваться в программе?
Аноним 19/08/20 Срд 17:11:09 #7 №1781901 
>>1781886
Нет.
Аноним 19/08/20 Срд 17:44:59 #8 №1781953 
1597848298173.jpg
Я спокоен как удав.
sageАноним 19/08/20 Срд 17:45:32 #9 №1781955 
>>1781953
Бля, тредом промахнулся.
Аноним 20/08/20 Чтв 04:21:44 #10 №1782285 
Есть простые и готовые решения по натягиванию ЮЗЕР ФРЕНДЛИ интерфейса на определенные таблицы? Для добавления строк и редактирования существующих. Чтобы ещё можно было настроить доступ, какие столбцы можно редактировать. Типа редактора в pgadmin, но для ОПЕРАТОРА ЭВМ. Проще и меньше свободы. Не хочу делать лишнюю работу по созданию редактора таблиц, если есть что-то подходящее.
Аноним 20/08/20 Чтв 04:32:57 #11 №1782288 
>>1782285
Reporting services/Ssas tabular
Аноним 20/08/20 Чтв 04:33:46 #12 №1782289 
>>1782288
А, еще powequery
Аноним 20/08/20 Чтв 04:36:53 #13 №1782290 
>>1782289
Мне бы для постгреса.
Аноним 20/08/20 Чтв 04:45:14 #14 №1782291 
А, вроде можно с постгресом.
Аноним 20/08/20 Чтв 09:36:04 #15 №1782407 
шо у нас тут есть люди с сертификатами оракла?
Аноним 20/08/20 Чтв 10:17:04 #16 №1782427 
>>1782407
почему ты думаешь, что люди с сертификатом могут быть чем-то полезны в интернете?
Аноним 20/08/20 Чтв 10:18:52 #17 №1782429 
Candidate-Apprentice-DataAnalyst-Copy.jpg
>>1782285
так и не делай, лол.
Используй google spreadsheets. Данные в программу закачивай через веб в виде csv. Результаты тоже через api в гугл-таблицы выдавай.
Аноним 20/08/20 Чтв 11:27:40 #18 №1782491 
>>1782427
Мне интересно как повлияла ачивка на трудоустройство и прочее
Аноним 21/08/20 Птн 08:54:05 #19 №1783556 
>>1782491
С каких пор у дб господ проблемы с трудоустройством?
Аноним 21/08/20 Птн 09:35:35 #20 №1783575 
>>1783556
с того самого момента как функции ДБА может выполняет любой нетупой программист?
с того самого момента, как государственное ИТ,где смотрели бы на сертификаты, стало скопищем долбоебов, а деньги платят лишь на зарубежных галерах?
Аноним 21/08/20 Птн 09:52:52 #21 №1783581 
image.png
image.png
>>1783556
Вот
Аноним 21/08/20 Птн 09:54:55 #22 №1783583 
image.png
Это серьезно такие зп при 30 годах опыта?
Аноним 21/08/20 Птн 09:55:17 #23 №1783584 
image.png
>>1783583
Аноним 21/08/20 Птн 14:49:05 #24 №1783974 
А есть какой-то читшит по базовым вещам sql?
Предстоит собес на жуниор дата инженера.
Аноним 21/08/20 Птн 23:39:35 #25 №1784490 
Оптимизаторы, что будет эффективнее в постгрес?
1 вариант) Таблица A: столбец id инт, столбец b_id - массив интов. Таблица b: столбец id int. Нужно поджоинить по элементам массива b_id таблицу b по индексам.

2 вариант) Таблица А, таблица Б: столбец id - инт. таблица С: столбец a_id int, столбец b_id int. Ну и через таблицу С джоиним таблицу Б.

Массив интов не меняется, как и таблица С.
Что думаете по этому поводу и почему?
Замеры провести не получается =(. Не умею я это делать
Аноним 22/08/20 Суб 00:57:10 #26 №1784557 
>>1784490
2
Аноним 22/08/20 Суб 00:59:13 #27 №1784559 
>>1784557
Мне кажется, разворачивание массива затратнее. Да и выглядит второй вариант лучше.
Аноним 22/08/20 Суб 02:29:07 #28 №1784601 
Вот бы айти тяночку эххх
Аноним 22/08/20 Суб 09:15:23 #29 №1784668 
изображение.png
>>1784601
откуда вы блять лезите
Аноним 22/08/20 Суб 12:55:41 #30 №1784759 
>>1784490
С джоинами конечно второй вариант, реляционные субд для таких вещей и придумали
Аноним 22/08/20 Суб 13:24:24 #31 №1784774 
>>1784759
>>1784557
>>1784559


Спасибо! Оставлю тогда второй вариант
Аноним 25/08/20 Втр 13:28:25 #32 №1787536 
Как реализовать одним запросом подсчет однородных данных (цены) по интервалу (5000)?
Т.е. сделать select с разбивкой на этот интервал на всю таблицу (до 5000; 5000-10000; 10000-15000...)
Я не работал с SQL ранее.
Пожалуйста помогите.
Аноним 25/08/20 Втр 15:46:20 #33 №1787717 
>>1787536
сгенерировать таблицу интервалов и заджоинить
Аноним 25/08/20 Втр 15:55:26 #34 №1787723 
>>1787717
или делить на 5000 и смотреть целую часть, и на основании этого ставить метку. Смотря что там в исходных данных и какой конкретно результат нужен.

Аноним 25/08/20 Втр 16:42:45 #35 №1787781 
Нужен ли в каждой таблице столбец id, выполняющий исключительно роль первичного ключа, если эту роль может выполнять столбец реальных данных? На stackoverflow топовый ответ — нужны. Я вот думаю, что это ухудшает читаемость, больше запутанности, сложнее писать всякие джоины, длиннее запросы. С другой стороны, подобие юнификации. Ну и без id порядок вставки теряется — наверное, единственная потеря информации. А что думают пацаны с двача?
Аноним 25/08/20 Втр 16:48:18 #36 №1787787 
>>1787717
>>1787723
Благодарю. Буду думать.
Аноним 25/08/20 Втр 17:04:37 #37 №1787810 
>>1787787
В новой таблице intervals_table делаешь два столбца start_interval и end_interval, заполняешь интервалами. Потом select * from prices_table join intervals_table on prices_table.price between intervals_table.start_interval and intervals_table.end_interval order by prices_table.price.
Аноним 25/08/20 Втр 17:08:38 #38 №1787816 
>>1787781
лучше сделать доп поле id в каждой таблице, а на столбец реальных данных повесить индекс с уникальностью
Аноним 25/08/20 Втр 19:39:55 #39 №1787964 
>>1787536
google: sql group by range
Аноним 26/08/20 Срд 00:22:59 #40 №1788145 
>>1787781
Делаю первичные ключи любого типа, и даже многоколоночные. Большинство таблиц не-связок конечно всё-таки с числовым id, потому что в данных нет уникальности. Но там где можно, почему нет? Нахуя ещё одна колонка с индексом? Это очевидное васянство из разряда обязательной аббревиатуры типа в названии колонки.
Аноним 26/08/20 Срд 00:26:31 #41 №1788148 
Добавлю, что числовой id может работать быстрее в джойнах. Первичный ключ следует выбрать таким, чтобы все внешние ключи на него ссылающиеся, занимали поменьше байт и соответственно легче проворачивались в оперативке. А если у тебя табличка такая, что никто на неё не ссылается, допустим токены какие-нибудь, то можно смело забить хуй и сделать строку с токеном первичным ключом.
Аноним 26/08/20 Срд 14:36:04 #42 №1788701 
144542299817749188.png
>>1787536
>>1787717
>>1787723
>>1787810
>>1787964 - просмотрел эту штуку, но я слишком toopoi неопытный гумманитарий для таких колдунств.

Вот к чему пристаковерфловил:
SELECT 5000 ( priceAmount / 5000 ) AS start_range,
5000
( priceAmount / 5000 ) + 5000 AS end_range,
count(*) AS COUNT
FROM price
GROUP BY priceAmount / 5000

Оно считает группы, но завязано на наличие существующих цен.
Поэтому если не будет цен в промежутке определенном, то он не будет создавать этот промежуток в результирующей таблице и ставить ему 0 в подсчете вхождений.

Я ведь правильно понимаю, что это человеку понятно, если диапазон пустой, то там нет вхождений, а вот роботу это будет непонятно, т.к. он должен обрабатывать подряд все статистические данные? И придется создавать костыли потом, если понадобится считать пустые интервалы (хотя я хз, что там будет потом и какая хотелка будет).
Какая логика считается правильной - больше данных это нормально или не париться о пропущенных значениях?

По поводу создания временной таблицы интервалов:
Я не понял как это делать (пытаяюсь вызвать хоть что-то, ругается на селект из #таблицы, хотя она и считается созданной нормально), но придерживаюсь такой логики, что ее нужно заполнять для СТАРТовых от нуля + 5000, а для КОНЕЧных от 5000 + 5000 и заканчивать таблицу на максимальном значении цены + 5000 , которое есть в таблице с ценами.

Руками такую таблицу интервалов заполнять не вариант, а как вот это все вышеописанное зациклить хз.

Чет у меня от логики картинка
<
Аноним 26/08/20 Срд 15:37:12 #43 №1788769 
>>1788701
DROP TABLE #tmp
CREATE TABLE #tmp
(ID INT IDENTITY(1,1),value_current int,value_next int)


DECLARE @step int
set @step=5000

WHILE @step < 9000000
BEGIN


INSERT INTO #tmp
(value_current,value_next)
VALUES (@step,@step+5000)
set @step=@step+5000

END;

SELECT *
FROM #tmp


Ну тут временная таблица, а себе генирируй постоянную. С другой стороны там записей ты всего пару тыщ лол не думаю что твоя шарага яхтами торгует, и временной хватит. Как джоинить анон выше уже писал. Если нужны пустые интервал делаешь левое соединение.

Аноним 26/08/20 Срд 15:41:53 #44 №1788774 
>>1788701
Кстати вот хороший вариант без всяких временных таблиц.

Select
Range as [Score Range],
Count(*) as [Number of Occurences]
from
Ranges r inner join Scores s on s.Score between r.LowerLimit and r.UpperLimit
group by Range
Аноним 27/08/20 Чтв 12:54:47 #45 №1789603 
какой материал пощупать для вката в postgres уровень джуна? типо могу crud операции через консольку но хотелось бы за индексы пояснить
Аноним 27/08/20 Чтв 13:12:55 #46 №1789642 
Сап.
Я вкатываюсь в джанго, отдельно sql не изучал, только поверхностно. Ну вот, создаю я бд для хранения бронирований в гостинице. В ней должны быть данные о клиенте (фио, емейл, телефон итд), дата его заселения, дата выезда, где он забронировался (сайт отеля, букинг итд), категория номера и цена. Я правильно понимаю, что у меня будет одна основная таблица со всем этим, но повторяющиеся данные вынесены в другие таблицы и связаны с основной через foreign key? То есть все данные о клиенте будут в таблице "клиенты" и в основной будет просто id из той. Источник брони и категории тоже.
Но вот до меня не очень допирает, а как собственно делаются запросы к таким бд? Вот если мне нужно вывести все данные о брони, что нужно прописать, чтоб взялись данные из таблиц, связанных внешними ключами? Я прост не знаю как загуглить, сорян, наверное тупой вопрос конечно.
Аноним 27/08/20 Чтв 13:15:10 #47 №1789646 
>>1789642
sql join
Аноним 27/08/20 Чтв 14:10:42 #48 №1789725 
Что-то не врубаюсь как именно работают AND и OR внутри JOIN-а

Вот есть у нас что-то вроде:
SELECT op_entries., op_entries_status.
FROM op_entries
LEFT OUTER JOIN op_entries_status ON op_entries.id = op_entries_status.op_id AND op_entries_status.order_id = 3

Я понимаю когда условие ON одно, что-то типо "ON table_1.id == table_2.key" но что означают эти AND и в особенности OR?
Аноним 27/08/20 Чтв 14:20:57 #49 №1789736 
>>1789725
Ебать ты далбаеб братишка, шел бы лучше ямы копать.
Аноним 27/08/20 Чтв 14:22:53 #50 №1789743 
>>1789736
?
Я с БД знакомился лишь год назад в универе, сейчас приперло разобраться почему некоторые query возвращают пустой результат. Что такого-то? Ты что ли сам с пеленок SQL ебашить начал?
Аноним 27/08/20 Чтв 14:24:32 #51 №1789746 
>>1789725
Та же логика, что у where. Можешь считать это where подзапроса к второй таблице.
Аноним 27/08/20 Чтв 14:28:08 #52 №1789754 
>>1789746
Или так, джойны в анси89:
select cheta from huita1, huita2 where huita1.fid = huita2.id and huita2.da = 1;
Аноним 27/08/20 Чтв 14:37:43 #53 №1789770 
>>1789746
>>1789754
Хм, логично
А OR сюда как вписывается? SELECT table_1.name from table_1 JOIN table 2 ON table_1.address == 10 OR table_2.session == 4
Мы создадим JOIN со строками где выполняется одно (или оба) из этих условий?
Аноним 27/08/20 Чтв 14:52:44 #54 №1789786 
>>1789646
Спасибо.
Аноним 27/08/20 Чтв 15:29:16 #55 №1789830 
>>1789743
Зашквар спрашивать элементарные вещи по базовым дисциплинам. Просто берешь и читаешь учебник. Там все ответы.
Sql - это абсолютно необходимое знание айтишника.
Аноним 27/08/20 Чтв 16:46:46 #56 №1790027 
>>1789743
Так у тебя наитупейший вопрос, по простой бинарной логике. Если ты неспособен понять таких вещей или экстраполировать их на другую область, то лучше иди копай ямы или принтеры носи.
Аноним 27/08/20 Чтв 17:09:23 #57 №1790069 
>>1789725
Оно просто проходит по каждому ряду. Если выражение в ON возвращает true - джойнит, иначе - не джойнит.
Аноним 27/08/20 Чтв 19:55:53 #58 №1790218 
изображение.png
изображение.png
>>1789743
мб поможет
Аноним 28/08/20 Птн 09:04:02 #59 №1790609 
изображение.png
изображение.png
Анончики, помогите!

Таблица в которую пишутся результаты распознавания имеет еще 2 колонки - foreign key с таблицами:
Project (пик 1)
Server (пик 2)

Нужно составить sql запрос, который выведет: дату(можно задать промежуток дат), результат распознавания (АО, человек, положительно-отрицательно), далее для каждого результата распознавания: кол-во за каждую дату (если указан промежуток), длительность всех аудио, проект и сервер.


Аноним 28/08/20 Птн 09:04:18 #60 №1790610 
>>1790609
Ах, да, это Postgres.
Аноним 28/08/20 Птн 09:24:25 #61 №1790622 
>>1790609
Стесняюсь спросить, где поле с таймстампом в таблицах?
Аноним 28/08/20 Птн 13:47:03 #62 №1790967 
изображение.png
>>1790622
Дико извиняюсь. Вот базовая таблица

и да, duration - тот самый стамп. сейчас форматну
Аноним 28/08/20 Птн 13:50:46 #63 №1790972 
А вообще я правильно понимаю, что если мне нужно хранить временную длительность чего-либо в постгресе - мну нужен тип timestamp?
Аноним 28/08/20 Птн 13:52:49 #64 №1790974 
>>1790972
Наебался. interval
Аноним 28/08/20 Птн 20:47:20 #65 №1791422 
image.png
>>1790609
Вроде написал запрос. Только на синтаксис ругается, на запятую в 4 -й строке. Подскажите как пофиксить, пожалуйста
Аноним 29/08/20 Суб 09:17:49 #66 №1791687 
изображение.png
>>1791422
Я хуею, додик нашёл буратину который напишет ему запрос, а сам блядь даже запятую убрать не в состоянии
Аноним 29/08/20 Суб 19:16:54 #67 №1792053 
>>1791422
шо за шрифт и цветовая подсветка
Аноним 30/08/20 Вск 23:36:41 #68 №1793126 
Блядь почеум у вас шапки нет?
Как вкатываться то?
Аноним 31/08/20 Пнд 00:55:15 #69 №1793212 
>>1792053
Шрифт, скорее всего, Hack, а подсветка - вот эта хуита: carbon.now.sh
Аноним 31/08/20 Пнд 06:50:30 #70 №1793346 
>>1793126
Чел, мы тут тхреад не могли перекатить две недели, а ты о какой-то шапке спрашиваешь.
Аноним 31/08/20 Пнд 08:17:48 #71 №1793373 
как будто бы на курсах учат перекатывать треды, че вы требуете от нас!!!!
Аноним 31/08/20 Пнд 17:47:18 #72 №1793959 
Селект в радость, коммит в сладость, почаны.
Посоветуйте курс на ораклового ДБА нормальный, чтобы КОТИРОВАЛСЯ
Аноним 31/08/20 Пнд 18:29:10 #73 №1794025 
>>1793959
проходил обучение здесь

orakl-dba-online.ru/register
Аноним 31/08/20 Пнд 18:53:15 #74 №1794058 
Чем отличаются разные sql типа oracle или ms или ещё какие есть? Просто обёрткой? Или в самих запросах есть всякое разное?
Аноним 31/08/20 Пнд 19:25:10 #75 №1794067 
>>1794058
Типа разные СУБД вообще. Если тебя конкретно запросы интересуют, а не внутрянка, то базовый SQL по спеке везде плюс-минус одинаковый, отличаются специфическими функциями. Работа со строками, с датами и т.д.
А вот если тебе нужно погромирование и SP, то тут кардинальные отличие начинается, погугли как выглядит pl-sql (oracle) и t-sql (mssql).
Аноним 31/08/20 Пнд 23:14:14 #76 №1794233 
>>1794067
Да ну нахуй, процедуры везде одни и те же.
Аноним 01/09/20 Втр 01:35:26 #77 №1794288 
>>1794233
Ага, функции в паскале и C++ тоже одни и те же.
Аноним 01/09/20 Втр 06:19:40 #78 №1794416 
>>1789736
Ваши родители москвичи? Вы живете в столице?
Аноним 01/09/20 Втр 07:22:51 #79 №1794431 
Подскажите литературу по OLAP DAX Power BI
Аноним 01/09/20 Втр 07:31:14 #80 №1794434 
>>1794431
Не надейся особо на местных, тут редко что-то подсказывают или советуют.
Аноним 01/09/20 Втр 17:08:35 #81 №1794952 
>>1794431
https://www.youtube.com/playlist?list=PLhhjwMYxzolhXuySjLR2_n-xb6VvWnjju
Аноним 01/09/20 Втр 17:41:09 #82 №1794978 
Тут есть мамкины DBA? Какое поведение ожидать от 4-х БД вместо 1-ой БД при использованиия MySQL 5.7 Community? Нагрузка распределится или наоборот возрастет на инстанс mysqld?
Аноним 02/09/20 Срд 00:46:10 #83 №1795188 
>>1794288
Аналогия не аргумент, мань.
Аноним 02/09/20 Срд 02:08:03 #84 №1795201 
>>1795188
Лучше, чем голословное "процедуры везде одни и те же", мань.
Аноним 02/09/20 Срд 14:00:08 #85 №1795411 
>>1794978
Твердый и решительный бамп
Аноним 02/09/20 Срд 21:25:28 #86 №1795747 
>>1795201
Соси хуй, мань.
Аноним 02/09/20 Срд 21:54:49 #87 №1795761 
Ребята, поясните за pl sql, а конкретно за параметры in, out.
Теорию читаю, но не особо понятно.
Я так понимаю out можно вызывать из другой процедуры?
Аноним 03/09/20 Чтв 00:13:30 #88 №1795816 
У меня есть массив id, id автоинкрементится и уникален. Надо найти все записи с этими id в таблице. Select * where id in array пройдется по всем записям, даже если нужно всего 3, например?
Как вытащить таргетно каждую запись за 1 запрос?
Аноним 03/09/20 Чтв 01:21:07 #89 №1795843 
>>1795816
Если id у тебя ещё и primary key, то для него скорее всего создан индекс. Поэтому обхода всех записей не будет, каждая запись найдётся на O(logN).
Аноним 03/09/20 Чтв 07:14:29 #90 №1795907 
>>1794978
ебанутый вопрос.
ты на одном и том же сервере раскидал таблички в разных БД?
или запустил 4 раза mysqld, но на одном сервере?

В теории, во втором случае МОЖЕТ возрасти параллелизм.
Но скорее, в твоем тупом случае, никак не изменится, только устанешь переписывать программы.
Аноним 03/09/20 Чтв 11:03:54 #91 №1796062 
>>1794978
чего добиться то хочешь?
Аноним 03/09/20 Чтв 12:22:57 #92 №1796165 
>>1796062
Есть application который состоит из нескольких модулей (могут быть запущены или не использоваться). Есть бизнес логика, разделенная в соответствие с задачами. Вот и хочу понять, есть резон все в одной схеме ебашть и засирать таблицами, которые могут быть просто мертвым грузом или же разделить на схемы в соответствие с модулями приложения)
проще говорят модули: A, B,C,D
И будет соответственно 4 БД на одном сервере: A_DB, B_DB, C_DB, D_DB. Проще будет дампы делать по идее и управлять правами.
Аноним 03/09/20 Чтв 12:23:51 #93 №1796168 
>>1796165
Про нагрузку я уже понял, или интансы запускать или сосать писю, так как ынтерпрайз решение не дадут. Только PG как вариант
Аноним 03/09/20 Чтв 13:01:20 #94 №1796200 
>>1796165
Просто клади в разные файловые группы. Процессор и память можно маштабировать бесконечно.
Аноним 05/09/20 Суб 13:04:02 #95 №1797928 
1123.png
Как получить среднее кол-во чеков по дням недели?
Это для кол-во работает Select count(distinct(чек) as кол-во чек from t1 where = месяц
По логике я должен просто сделать так
Select AVG(count(distinct(чек)) as кол-во чек from t1 where = месяц
Или select avg(Select count(distinct(чек) as кол-во чек from t1 where = месяц) as GGG from t1
Хэлп ми
Аноним 05/09/20 Суб 13:28:23 #96 №1797954 
>>1797928
Ещё нужен GROUP BY day_of_week.
Аноним 05/09/20 Суб 13:42:29 #97 №1797962 
>>1797928
SELECT Месяц, ДеньНедели, AVG([Кол-во чек])
FROM govno
GROUP BY Месяц, ДеньНедели

то ли ты вобще какую-то хуйню наитупейшую спросил, то ли задания не понял
Аноним 05/09/20 Суб 13:43:01 #98 №1797963 
>>1797962
* я задания не понял
Аноним 05/09/20 Суб 14:17:44 #99 №1797985 
ййй.png
>>1797962
>>1797928
Кол-во чек подсчитывается как сумма уникальных значений
count(distinct № чек).
Теперь мне нужно сделать как среднее количество чеков за день недели. Например среднее кол-во чеков за все понедельники месяца 228, дальше среднее кол-во чеков за все понедельники месяца разбивка на магазины в первом 226 во втором 229 в третьем 250 и тд.
Аноним 05/09/20 Суб 14:24:35 #100 №1797987 
>>1797985
Я бы хотел сделать это все одним запросом, но как тупое решение нахожу создании новой таблицы в которой будет хранится кол-во чеков за период
Аноним 05/09/20 Суб 14:29:00 #101 №1797989 
>>1797985
А дни недели у тебя где-нибудь есть в таблицах, или только дата?


Аноним 05/09/20 Суб 14:38:08 #102 №1797991 
выв.png
>>1797989
Столбец Дата связан с таблицей Календарь, там хранятся дни недели. Дни неделю я джойню и группирую
Аноним 05/09/20 Суб 14:41:55 #103 №1797994 
>>1797991
with govno
as
(
SELECT Дата , COUNT(DISTINCT Чек) as Zalupa
FROM GOVNO
GROUP BY Дата
)

SELECT z.Месяц, z.Дата,z.ДеньНедели, AVG(Zalupa) as Zalupa
FROM GOVNO as g inner join ТАБЛИЦА_КАЛЕНДАЯ as z
on g.Дата=z.Дата
group by z.Месяц, z.Дата,z.ДеньНедели




Аноним 05/09/20 Суб 16:12:38 #104 №1798052 
>>1781628 (OP)
Манга по базам данным - нормальная вводная книга или лучше взять что-то более фундаментальное?
Аноним 05/09/20 Суб 18:19:24 #105 №1798133 
>>1796165
Ты не сможешь масштабировать или ускорить бд просто переименованием баз. Это не так делается.
Аноним 06/09/20 Вск 08:17:37 #106 №1798486 
dar51hn-ddc71037-07c7-4972-bd63-234b2dca3c9d.png
Пиздос, открыл для себя блокировки строк при апдейтах. Оказывается можно схватить дедлок всего лишь с помощью транзакций и простых UPDATE, даже без субквери. Даже на классическом примере списали со счёта одного клиента, закинули на счёт другому.
Аноним 06/09/20 Вск 09:26:58 #107 №1798501 
>>1798486
И как же словить дедлок?
Аноним 06/09/20 Вск 09:41:44 #108 №1798507 
>>1798501
https://www.postgresql.org/docs/10/explicit-locking.html#LOCKING-DEADLOCKS
Аноним 06/09/20 Вск 10:02:01 #109 №1798510 
Как бэкапить базу mysql? mysqldump бэкап заливается на чистую базу уже больше суток. Если на проде всё упадёт - это не вариант. Может снапшоты файловой системы? А если текущая фс не умеет в снапшоты?
Как делают взрослые дяди, если ресурсов на репликацию нет?
Аноним 06/09/20 Вск 10:11:28 #110 №1798514 
>>1798510
Чёт как-то долго. Ты там индексы не перестраиваешь на каждый инсерт? Поиграй с параметрами при взятии дампа.
Аноним 06/09/20 Вск 10:24:31 #111 №1798517 
>>1798510
чото хуйня какая-то, сколько бд вести?
Покажи запрос бекапа\востановления
Аноним 06/09/20 Вск 10:45:02 #112 №1798526 
Есть один сайт с кучей продуктов. Когда вася покупает один из них - на почту ему приходит doc/pdf-презентация, релевантная купленному продукту, коих довольно много и будет больше. Суть: сделать в таблице с продуктами поле, по содержимому которого можно будет однозначно доставать нужный файл. Причём сделать чтобы было не как говно и при этом без всяких сложностей типа отдельных сервисов, которые будут отдавать эти презентации для своих, и прочей ебалы.
Можно было бы хранить base64 или file:///ссылками прямо в базе, но какое-то внутреннее чутьё меня останавливает.
Вместо базы mysql 8.0, если вдруг это важно.
Аноним 06/09/20 Вск 10:49:39 #113 №1798530 
>>1798526
храни url, в чём проблема?
Аноним 06/09/20 Вск 20:15:53 #114 №1798998 
>>1798517
> сколько бд вести?
База около 25 гигов. Миллиарды записей. Но на то она и база ведь. Мог и в блокнотик записывать, коль так сложно это всё. 21 век на дворе. Видимо где-то я что-то не не так делаю.
>>1798517
>Покажи запрос бекапа\востановления
mysqldump --all-databases --compact --single-transaction -u root -p xxxxxxxxxxxxxxxx > bkp.sql
его потом в другую базу:
mysql -f -uroot -p < bkp.sql
И висит уже больше суток. Пара ошибок в процессе вылезло по датам, но ничего серьезного.
Это же не дело.
Аноним 07/09/20 Пнд 10:16:40 #115 №1799251 
>>1798998
Целевая база пустая? Дебаг пробовал включать?
Аноним 07/09/20 Пнд 15:55:22 #116 №1799623 
>>1799251
Была пуста, сначала ещё --no-data залил с созданием таблиц, потом фулл дамп. Вопрос вобщем-то не в этом, а в том, можно ли как-то не тупыми запросами в базу её бэкапить (честно, видится это как самый идиотский способ, который только можно придумать), а бэкапить одним куском, бинарно, то, на чём она лежит, или типа того? Может в том же разделе создать файл с виртуальным разделом, например в btrfs и среплицировать в него, а оттуда уже снапшотом куда угодно... Что-то мне подсказывает, что давно есть много полезных опенсорсных утилит на эту тему.
Аноним 07/09/20 Пнд 20:08:28 #117 №1799791 
>>1781628 (OP)
Есть набор Отделов (каждый Отдел представлен своей таблицей), к каждом Отделу приписаны Сотрудники (с помощью Foreigh Key), для каждого отдела надо сделать "таблицу соответствий" по типу id_сотрудника -> приоритет_сотрудника
Как это лучше всего намутить? Пока что вижу лишь закинуть поле JSON внутрь Отдела и представить ключи id-шниками Сотрудников и значения - приоритетом
Аноним 07/09/20 Пнд 21:59:55 #118 №1799950 
А почему нельзя в таблицу с сотрудниками добавить поле с приоритетом?
>>1799791
Аноним 08/09/20 Втр 00:58:31 #119 №1800109 
>>1799791
Сделай join table employees_departments employee_id, department_id, priority с уникальным индексом по первым двум колонкам
Аноним 08/09/20 Втр 13:36:45 #120 №1800544 
>>1787781
Эдгар Кодд и Кристофер Дэйт как бы говорят, что суррогатный ключ (а это как раз Id исключительно для ключа) - зло. Не совсем с этим согласен, но да, если есть поле, уникальное и неизменяемое со временем, то быть ему ключом. Пример - уникальный код товара. Плохой пример - номер паспорта. А вообще, лучше почитать про нормальные формы, хотя бы про первые три, например тут: https://metanit.com/sql/tutorial/2.2.php, осознать их и уже потом решать, нужен суррогатный ключ или хватит натурального.
Аноним 08/09/20 Втр 13:55:30 #121 №1800581 
>>1799791
Знаешь как в postgres поставить check constraint на json-поле? Мне надо проверять чтобы любое значение по ключу было числом, большим нуля
Аноним 08/09/20 Втр 19:35:13 #122 №1801024 
Работаю в энтерпрайзе, в проекте около 2к таблиц, есть дб-админы, и почти сука у 90% там где должны быть FK NOT NULL - нихуя нет, более того, эти мрази ставят строки везде куда могут вместо int'ов, вот просто так дебилы решили, откуда такие мрази берутся?

Как меня уже заебало это нытье НУ ТАМ ЖЕ ЕЩЁ ДАТА НЕИЗВЕСТНА, ПОЭТОМУ NULL - пошли нахуй петухи, у них пол базы данных обосрано в NULL.
Аноним 08/09/20 Втр 20:53:46 #123 №1801089 
>>1801024
Почему ты так переживаешь по этому поводу? Базка-то работает? Нагрузку держит? Пользователи счастливы?
Аноним 08/09/20 Втр 22:07:02 #124 №1801145 
>>1801089
Во-во. Понаберут зумерье всякое а потом расхлебвают
Большие Дяди с Большими писями по такой херне не загоняются
Аноним 08/09/20 Втр 22:55:21 #125 №1801205 
>>1799623
это и есть нормальный способ.

когда делаешь бекап, следует думать не о том как его сделать, а как его будет восстанавливать нанятый после тебя за еду эникей.
Аноним 10/09/20 Чтв 18:49:17 #126 №1802858 
1.png
Допустим WITH с select'ом напишу, но как сделать счётчик?
Аноним 10/09/20 Чтв 23:57:26 #127 №1803179 
Чето я сижу туплю и никак не пойму как мне переписать обычный цикл на sql. Но в итоге понял.
Аноним 11/09/20 Птн 01:15:35 #128 №1803261 
>>1803179
Просто используй сплитстринг
Аноним 11/09/20 Птн 09:43:06 #129 №1803381 
Как засунуть в строки базы sqlite3 питоновские списки с разным количеством элементов?
Аноним 11/09/20 Птн 09:49:42 #130 №1803384 
>>1803381
Сериализуй массив и храни строку.
Аноним 11/09/20 Птн 09:57:57 #131 №1803388 
>>1803384
в смысле просто сконвертировать его в строку или под сериализацией понимается что-то еще?
Аноним 11/09/20 Птн 10:16:29 #132 №1803394 
>>1803388
Да.
Аноним 11/09/20 Птн 10:29:09 #133 №1803401 
>>1803261
А считать можно подзапросом по количеству разделителей(запятых). Ну или n+1
Аноним 11/09/20 Птн 15:37:51 #134 №1803670 
image.png
Хай. Есть один MySQL в котором лежат хранимая процедура и вызывающий ее триггер на INSERT в нужную таблицу.
Верно ли я понимаю, что при выполнении:
INSERT INTO таблица () VALUES ();
триггер сработает на каждую вставляемую строку, а не единожды в конце этой команды? Если да, можно ли в мускуле добиться поведения триггера как во втором варианте?
Аноним 11/09/20 Птн 20:03:59 #135 №1803864 
School.jpg
>>1781628 (OP)
Сап, котики! Прошу помощи. Скорее поставить мне мозги, чем написать за меня запрос хотя запрос с объяснением будет в тему.
Есть БД "ШКОЛА" (пилил в oracle developper).
(PK) - первичный ключ, (FK) - внешний ключ.
Сущности в БД:
-classes (классы) [Id (PK), Lvl (название класса 1А, 2Б...), QtyStudents (кол-во учащихся]

-subjects (предметы) [Id (PK), Subj_Name (Матем, Русский...), Teacher_Id]

-teachers (учителя) [Id (PK), Last_name, First_Name, Middle_Name]

-lessons (уроки "занятия") [Id (PK), Lesson_Date, Teacher_Id (FK), Class_Id (FK), Subj_Id (FK), Fullness (посещаемость на этом уроке)]

Только таблица lessons связана с тремя остальными через внешний ключ. Оставшиеся три таблицы между собой не связаны (например teachers не связана напрямую с subjects).

Надо написать запрос, который выводит:
фамилию и имя учителя, предмет за месяц, с наименьшей посещаемостью. Т.е. одну строку с наименьшим значением (Fullness/QtyStudents) 100%.

Джва часа рожал, нашел как выбрать минимальный процент. Но, как его обернуть в запрос, чтобы подтянулась фамилия, имя и предмет - не осилил. Плеас, хэлп.
Вот этот селект выводит минимальный процент посещаемости:
SELECT MIN(100
l.Fullness/c.Qty_Students)
FROM lessons l JOIN classes c ON (l.Class_Id = c.Id)
JOIN teachers t ON (l.teacher_id = t.Id)
JOIN subjects s ON (l.Subj_Id = s.Id);

Пытаюсь обернуть вот так:
SELECT t.Last_Name, t.First_Name, s.Subj_Name,
(
SELECT MIN(prc)
FROM
(SELECT 100*l.Fullness/c.Qty_Students prc
FROM lessons l JOIN classes c ON (l.Class_Id = c.Id)
JOIN teachers t ON(l.teacher_id = t.Id)
JOIN subjects s ON (l.Subj_Id = s.Id)
)
)
FROM lessons l join classes c ON (l.class_id = c.id)
JOIN teachers t ON (l.Teacher_Id = t.Id)
JOIN subjects s ON (l.Subj_Id = s.Id)
WHERE l.Lesson_Date > to_date('2020-11-01', 'YYYY-MM-DD')
AND l.Lesson_Date < to_date('2020-11-30', 'YYYY-MM-DD');

Выводит все фамилии, имена, предметы и напротив каждого пишет один и тот же минимальный процент. Типа:
Иванов, Иван, Матем, 55%
Петров, Петя, Литра, 55%
Сычёв, Вася, Русиш, 55%
Аноним 12/09/20 Суб 06:16:59 #136 №1804145 
>>1803864

Есть мнение что задачи нужно решать, собирая данные как пирамидку. Ага смотрим тебе, тебе нужно найти что-то по учителям, делаем селект из учителей. Смотрим не хватает уроков, джоиним уроки и тд.


Соотвественно просто сначала обогащаешь таблицу нужными полями т.е просто джоинишь ВСЕ таблицы.
Потом добавляешь вычисляемое поле которое выделает часть месяца из даты, и большую таблицу группируешь по месяцу+учителю, в групировки делаешь наполняемость на количество, или что ты там посчитать хотел.
Аноним 12/09/20 Суб 09:23:19 #137 №1804187 
>>1803670
ты в яндекс гуглишь?
сделай триггер FOR EACH ROW
Когда-то давно в mysql это не работало, но сейчас все ок.
Аноним 12/09/20 Суб 14:12:52 #138 №1804376 
Насколько хорошо мускуль работает с json-ебаниной? Если я каждый день буду создавать жсон ячейку и писать туда лог объемом в десятки мегабайт, для того чтобы потом брать их и обрабатывать, он не забуксует?
Аноним 12/09/20 Суб 14:17:20 #139 №1804380 
>>1804376
Больной ублюдок, я бы за такое ногами пиздил.
Аноним 12/09/20 Суб 14:57:44 #140 №1804392 
>>1804376
Юзай монгу. Её для таких вот случаев и придумали.
Аноним 12/09/20 Суб 15:02:08 #141 №1804394 
Насколько сильно репликация тормозит мускульного хозяина? Если слэйв на удалённом сервере через интернеты, это вообще законно? Только вкатываюсь в бдшечки...
Аноним 12/09/20 Суб 15:12:30 #142 №1804400 
>>1804392
Я как раз склоняюсь в сторону монги, естественно она будет лучше для таких задач, но накатывать ее на сервер, разбираться, ебаться с ней и перепиливать код под нее - для меня тот еще гемор, потому и спрашиваю, может мускуль тоже неплохо справится с подобным.
Короче посмотрю как оно будет работать на мускуле, если накроется медным тазом, придется всё перепердоливать.
Аноним 12/09/20 Суб 15:19:52 #143 №1804404 
>>1804400
>придется всё перепердоливать.
Всё равно придётся рано или поздно. Лучше сразу сделать нормально.
Аноним 12/09/20 Суб 20:09:44 #144 №1804639 
image.png
Аноним 12/09/20 Суб 20:51:37 #145 №1804687 
>>1804145
>Соотвественно просто сначала обогащаешь таблицу нужными полями т.е просто джоинишь ВСЕ таблицы.
угу, понимаю

>Потом добавляешь вычисляемое поле которое выделает часть месяца из даты
Что подразумевается под "вычисляемым полем"? Оно в секции SELECT или WHERE?
Аноним 12/09/20 Суб 21:07:28 #146 №1804714 
>>1804639
Я всегда зажимаю шифт, мне норм.
Аноним 12/09/20 Суб 22:35:36 #147 №1804779 
>>1804639
Объясните космический смысл пикчи.
Аноним 12/09/20 Суб 23:31:35 #148 №1804823 
>>1804779
https://bash.im/quote/420058
Аноним 13/09/20 Вск 03:27:55 #149 №1804904 
>>1803864

Если должны обрабатываться данные только одного какого-то месяца, то просто сортируем сведённые данные по "посещаемости" и берем первую запись.

-- псевдокод:

SELECT TOP 1 "процент посещаемости", фамилия, имя ...
FROM T1 JOIN T2 ....
WHERE месяц N
ORDER BY "процент посещаемости"
Аноним 13/09/20 Вск 06:32:16 #150 №1804930 
>>1804687
Ну ёбана, ты что совсем деревянный? Вычисляемое - ещё одно поле в таблице, которое получено из существующих полей(например стобец2 * стобец2 ). В WHERE только фильтры, новые данные в таблицу ты не добавишь.
Аноним 13/09/20 Вск 06:32:38 #151 №1804932 
>>1804823
Как там в 2008?
Аноним 13/09/20 Вск 21:31:38 #152 №1805631 
>>1804145
>>1804904
>>1804930
Спасибо, няши. Я почти-почти допинал.
Сейчас у меня выводятся ФИО, предмет и последний столбец - с минимальной явкой. Но мне теперь нужно, чтобы выводилась только одна строка с минимальным значением в последнем столбце. Прописываю последней строкой
having min(yavka);

select t.Last_Name, t.First_Name, s.Subj_Name,
min(100*l.Fullness/c.Qty_Students) as yavka
from lessons l join classes c on (l.Class_Id = c.Id)
join teachers t on (l.teacher_id = t.Id)
join subjects s on (l.Subj_Id = s.Id)
where l.Lesson_Date > to_date('2020-11-01', 'YYYY-MM-DD')
and l.Lesson_Date < to_date('2020-11-30', 'YYYY-MM-DD')
group by t.Last_Name, t.First_Name, s.Subj_Name
having min(yavka);

Пишет "invalid relational operator"

Но если последнюю строку переписать на сравнение например фамилии с каким-нибудь учителем, то все работает (остается одна строка, но не та, которая мне нужна)
having t.Last_Name = 'Ivanov';

>>1804930
> ты что совсем деревянный? Вычисляемое - ещё одно поле..
я просто новенький и пока путаюсь в терминах... "вычисляемое" там или еще какое. уменьшаемое, вычитаемое, слагаемое - помню. Вычислемеое - нет))
Аноним 14/09/20 Пнд 01:36:52 #153 №1805776 
>>1805631
В хэвинг пиши min(100*l.Fullness/c.Qty_Students)
Аноним 14/09/20 Пнд 01:44:10 #154 №1805781 
>>1805776
Ну точнее тебе нужно сделать сортировку, потом вывести первую строчку, что-то типа:

select top 1
from govno
where min(100
l.Fullness/c.Qty_Students)

Но в оракле функции топ вроде нет, но есть аналаги гугли oracle top
Аноним 14/09/20 Пнд 01:47:18 #155 №1805783 
>>1805631
GROUP BY не требуется. Как я уже писАл, сортировка и топ 1:

select t.Last_Name, t.First_Name, s.Subj_Name,
--min убираем
(100l.Fullness/c.Qty_Students) as yavka
from lessons l join classes c on (l.Class_Id = c.Id)
join teachers t on (l.teacher_id = t.Id)
join subjects s on (l.Subj_Id = s.Id)
where l.Lesson_Date > to_date('2020-11-01', 'YYYY-MM-DD')
and l.Lesson_Date < to_date('2020-11-30', 'YYYY-MM-DD')
order by yavka -- сортировка
FETCH FIRST ROW ONLY;

Ну а если очень-очень хочется c GROUP BY , то можно так:

select t.Last_Name, t.First_Name, s.Subj_Name,
min(100
l.Fullness/c.Qty_Students) as yavka
from lessons l join classes c on (l.Class_Id = c.Id)
join teachers t on (l.teacher_id = t.Id)
join subjects s on (l.Subj_Id = s.Id)
where l.Lesson_Date > to_date('2020-11-01', 'YYYY-MM-DD')
and l.Lesson_Date < to_date('2020-11-30', 'YYYY-MM-DD')
group by t.Last_Name, t.First_Name, s.Subj_Name
having min(100*l.Fullness/c.Qty_Students) IN (
SELECT MIN(100l.Fullness/c.Qty_Students)
FROM lessons l JOIN classes c ON (l.Class_Id = c.Id)
JOIN teachers t ON (l.teacher_id = t.Id)
JOIN subjects s ON (l.Subj_Id = s.Id)
);


Аноним 14/09/20 Пнд 10:20:48 #156 №1805909 
>>1805783
Ну тащемта да, если ему нужно для одного месяца. Но логично бы было предположить, что нужна таблица с топом для каждого месяца.
Аноним 14/09/20 Пнд 16:49:48 #157 №1806322 
>>1804394
Запись лога не тормозит практически.
Тормозит фиксация , тк тебе придется включить binlog , а sync_binlog Default Value = 1
Сама репликация :
>Replication is asynchronous by default
Тоже не должна тормозить на бытовом уровне понимания.

В реальности все очень зависимо от разных штук.
Аноним 14/09/20 Пнд 16:52:29 #158 №1806329 
>>1804376
не так страшно как об этом думают яваскрипт-макаки
>
Indexing a Generated Column to Provide a JSON Column Index

Почитай это
https://dev.mysql.com/doc/refman/8.0/en/create-table-secondary-indexes.html
Аноним 15/09/20 Втр 08:13:52 #159 №1806987 
>>1805776
>>1805781
>>1805783
Пасиб! Понял. Всё вчера сделал.

>>1805909
Мне пока что для собеса. Остальные запросики из тестового сделал, а этот не по зубам оказался.
Аноним 15/09/20 Втр 11:24:25 #160 №1807093 
Всем BEGIN, посоны.

Помогите понять, может ли Postgres в параллельное обновление нескольких колонок одной строки без локов?

Например, представьте схему:

```
create table foo (
id int
val1 int
val1_updated_at timestamp
val2 int
val2_updated_at timestamp
)
```

Есть два типа апдейтов:

```
update foo
set val1 = ??? and val1_updated_at = ???
where id = 1
```

и

```
update foo
set val2 = ??? and val2_updated_at = ???
where id = 1
```

При одновременном выполнении таких апдейтов, вызовет ли это проблемы с целостностью данных?
Аноним 15/09/20 Втр 11:27:20 #161 №1807095 
>>1807093
[code]
create table foo (
id int
val1 int
val1_updated_at timestamp
val2 int
val2_updated_at timestamp
)
[/code]
Аноним 15/09/20 Втр 13:34:40 #162 №1807166 
>>1804404
Не слушай этого перфекциониста. Сделай, чтобы работало, пойми корнер кейсы, покрой тестами, а потом переделаешь нормально.
Аноним 15/09/20 Втр 16:30:34 #163 №1807340 
Сап тред

Есть довольно сложная база, в ней имеется таблиц 20. Раз в неделю мы делаем по ней некий отчёт и вьюху, которую требует отдел долбоёбов. Им время от времени не нравится, и они просят переделать/сделать другую вьюху с другими параметрами.

Каждый раз прогонять требуемые запросы - жопоебля, так как один такой запрос будет на нашем ебаном сервере часа два грузиться. Вопрос: существуют ли какие-то тулзы, которые по аналогии с Excel могут интуитивно делать необходимые этому отделу долбоёбов запросы? Или, если нет, как можно решить эту проблему? Была идея напилить свой скрипт на питоне, который будет в соответствии с выбранными столбцами посылать необходимый запрос SQL и возвращать на выходе CSVшник, но пока не очень представляю как это сделать.

Сам Excel не предлагайте, он будет нереально виснуть от объёма базы
Также не предлагайте Power BI, уже пробовали, он под такое изза своей сложности тоже не заточен


Заранее спасибо
Аноним 15/09/20 Втр 17:09:40 #164 №1807379 
>>1807340
Powerquery, repoting service
Аноним 16/09/20 Срд 08:46:30 #165 №1807931 
data-scientist-analyzes-data.jpg
>>1807340
>Вопрос: существуют ли какие-то тулзы, которые по аналогии с Excel могут интуитивно делать необходимые этому отделу долбоёбов запросы?
да.
power bi и tableau.

>Power BI, уже пробовали, он под такое изза своей сложности
в таком случае может вам всей фирмой нахуй пойти?
Вы просто ленивые долбоебы. Это лучше из возможных решений.
Аноним 16/09/20 Срд 08:48:36 #166 №1807934 
>>1807340
>Каждый раз прогонять требуемые запросы - жопоебля, так как один такой запрос будет на нашем ебаном сервере часа два грузиться
и че так долго то?
Возможно, вам нужна колоночная аналитическая бд.
типа clickhouse или vertica. И автоматический процесс доставки данных в нее.
Аноним 16/09/20 Срд 14:11:27 #167 №1808084 
>>1807934
В CH сложно вкатываеться?
Аноним 16/09/20 Срд 14:42:19 #168 №1808100 
10dcfe2f4a0c4b991243d23731a23b76.jpg
sql.JPG
Памахите, плиз
В правильности первого я практически не сомневаюсь, второе вызывает вопросы, а третье мне непонятно
Аноним 16/09/20 Срд 15:06:03 #169 №1808118 
>>1808100
2 выглядит правильно.

3 это просто SELECT и WHERE. Алсо, гугли как использовать LIKE.
Аноним 16/09/20 Срд 15:07:21 #170 №1808120 
>>1808118
И, скорее всего, в 2 вывести название департамента, а не только з/п.
Аноним 16/09/20 Срд 15:07:45 #171 №1808121 
>>1808120
*в 2 надо
Аноним 16/09/20 Срд 15:12:34 #172 №1808129 
>>1808118
Блин, насчёт третьего - и правда.
Про LIKE я вполглаза читал и потому плохо знаком.
Аноним 16/09/20 Срд 17:46:44 #173 №1808327 
>>1807093
Бампану вопрос. Очень лень писать тест интеграционный с многопоточностью, поднимать докер, писать бойлерплейт и проч.
Аноним 17/09/20 Чтв 02:18:47 #174 №1808687 
где я могу потестить сложные sql запросы? hackerrank? типо порешать задачки для тренировки
Аноним 17/09/20 Чтв 08:36:03 #175 №1808742 
>>1808687
Чот я особо не вникал, но на первый взгляд задачи эллементарные, за на 10 баллов селект из одной таблицы, на 50 групировка с каунтом
Аноним 17/09/20 Чтв 19:06:12 #176 №1809273 
>>1781628 (OP)
ОП, добавь в шапку: https://dbdb.io/

Да и вообще можно весь Карнеги Меллон добавить:

https://db.cs.cmu.edu/
https://www.youtube.com/channel/UCHnBsf2rH-K7pn09rb3qvkA/playlists
Аноним 17/09/20 Чтв 19:07:50 #177 №1809275 
>>1809273
Отвык от уебанское двачевской разметки.

- https://db.cs.cmu.edu/
- https://www.youtube.com/channel/UCHnBsf2rH-K7pn09rb3qvkA/playlists
Аноним 17/09/20 Чтв 19:10:14 #178 №1809277 
>>1809275
>уебанское
>уебанской
Аноним 17/09/20 Чтв 19:12:20 #179 №1809279 
>>1808687
ХакерРанк, ЛитКод (нужна премиум подписка), куча всего. В гугле забанили?

Вроде довольно большая бесплатная коллекция задач: https://www.hackerrank.com/domains/sql
Аноним 17/09/20 Чтв 19:38:06 #180 №1809297 
>>1809273
>>1809275
Напомни ближе к 500, коллективный ОП добавит.
Аноним 17/09/20 Чтв 20:27:05 #181 №1809348 
Сап двач. Какой клиент для постгре умеет в аутентификацию по sspi?
Аноним 17/09/20 Чтв 20:59:09 #182 №1809374 
>>1809279
раньше же вроде на литкоде бишплатная подписка была?
Аноним 18/09/20 Птн 00:33:46 #183 №1809652 
>>1809374
На литкоде нет "бесплатной подписки". Так-то да, он бесплатен, но когда я смотрел последний раз (около месяца назад), почти все вопросы на SQL были под замком.

https://leetcode.com/problemset/database/
Аноним 18/09/20 Птн 02:24:02 #184 №1809695 
изображение.png
Котаны как в apache nifi вкатываться? Что почитать?
Аноним 18/09/20 Птн 02:53:08 #185 №1809702 
.
Аноним 18/09/20 Птн 20:21:55 #186 №1810225 
Есть ли какой-нибудь ресурс где можно посмотреть аналогичные команды для разных СУБД (создание таблиц с разными типами, ограничениями, индексами, вывод информации о таблицах и всё такое), чтоб можно было сравнить и сразу понять в чём различия, а то у одних auto increment, у других auto_increment, у третьих identity(1, 1), и тому подобное.
Аноним 18/09/20 Птн 20:57:17 #187 №1810245 
>>1810225
http://troels.arvin.dk/db/rdbms/
https://en.wikibooks.org/wiki/SQL_Dialects_Reference
Вот что сам нашёл
Аноним 19/09/20 Суб 00:03:33 #188 №1810364 
>>1810245
https://www.w3schools.com/sql/
А вот тут ещё лучше
Аноним 19/09/20 Суб 00:34:41 #189 №1810384 
223.JPG
>>1808100
Всё ещё мучаю
Аноним 19/09/20 Суб 09:28:47 #190 №1810604 
>>1810384
Ебать ты далбаёб братишка. В 3 не OR,а AND, вместо LIKE используй LEFT
Аноним 19/09/20 Суб 12:05:30 #191 №1810654 
a9d92a52dee916d102fbb15b4282c568.jpg
>>1810604
Я не очень умный, но я пытаюсь :c
В идеале вообще в песочнице было б таблицу создать и там тыкать, да.
Аноним 19/09/20 Суб 13:17:00 #192 №1810713 
Давно не работал с настоящей БД все джейсоны в носкл дрочим
Прособесудейте меня по MS SQL немного плиз.
Аноним 19/09/20 Суб 22:12:58 #193 №1811133 
>>1803388
https://docs.python.org/3.8/library/functions.html#repr
Аноним 19/09/20 Суб 22:17:42 #194 №1811137 
>>1808100
Что за рофл в первом: "GROUP BY IT_PROG"?
Аноним 19/09/20 Суб 22:19:15 #195 №1811138 
>>1811137
SELECT AVG(salary) FROM Employees
WHERE job_id = "IT_PROG"
Вот так же надо, вроде
Аноним 20/09/20 Вск 07:44:30 #196 №1811336 
Подскажите, джойны, если случайно заиграться с переменными binlog_commit_wait_count и binlog_commit_wait_usec, и получится так, что обновления будут сыпаться быстрее, чем диск будет успевать записывать данные, база сама эту ситуацию разрулит или всё развалится?
Аноним 20/09/20 Вск 10:59:42 #197 №1811378 
15984416648190.jpg
Анончики, мне дали техническое задание, в котором надо получить выгрузки по ИНН с сайта ФНС. Я пока делаю через selenium на питоне, но, вероятно, можно как-то подключиться к БД ФНС через MySQL какой-нибудь? Для этого надо писать админу сайта и запрашивать логин и пароль к БД? Смогу я потом через SQL-запросы считать excel-файл со списком ИНН и скачать выгрузки из БД, или лучше продолжить делать через питон?
Аноним 20/09/20 Вск 11:42:37 #198 №1811392 
>>1811378
попробуйте потоньше пожалуйста
Аноним 20/09/20 Вск 11:45:16 #199 №1811396 
>>1811392
Я не троллю, анон, никогда таким не занимался. Это слишком легко или невозможно?
Аноним 20/09/20 Вск 11:51:41 #200 №1811399 
>>1811396
Кому ты будешь писать додик? Золотову? Кто тебе даст доступ к бд ФНС с гостайной и личными данными?
Аноним 20/09/20 Вск 11:56:40 #201 №1811406 
>>1811399
На сайте же можно скачивать выписки, вот я и думал, что можно автоматизировать это через SQL.
Ладно, спасибо за ответ, продолжу делать через webdriver.
Аноним 20/09/20 Вск 13:22:56 #202 №1811442 
>>1811392
>>1811399
У судрф на сайте sql-инекция и как следствие база жопой наружу торчит, насчёт фнс не исключено что тоже найти можно.
Аноним 20/09/20 Вск 13:45:43 #203 №1811457 
>>1810604
Какой, нахуй, лефт, долбоёб?

`AND phone_number LIKE ''+7905%"`

Обрати внимание на `%`.

И да, там везде должен быть AND.
Аноним 20/09/20 Вск 14:03:56 #204 №1811462 
>>1811457
В условиях задачи явно сказано - номер начинающейся на +7905, если паттерн был в середине, или там плюса не было, другой разговор. А с учётом того что вариант с лефтом более предпочтителен like, и в условиях задачи нам не двусмысленно намекают что его можно использовать. Он блять WHERE написать не может, а если у него спросят В ЧЁМ ПРЕИМУЩЕСТВО LIKE или ЧТО ОЗНАЧАЕТ ПРОЦЕНТ, он просто будет стоят и жидко обтекать.

А потом такие хуесосы как ты на продакшене везде свой ссаный полнотекстовый поиск пихают и удивляются, почему всё так хуёва работает.
Аноним 20/09/20 Вск 14:11:30 #205 №1811468 
>>1811462
Может я тупой, но куда ты там ЛЕФТ впихнёшь? Причём там ЛЕФТ вообще?
Аноним 20/09/20 Вск 14:13:44 #206 №1811470 
>>1811462
Ты вот так хочешь, что ли?

`LEFT(phone_number, 5) = '+7905'`

Но это же уебанство, уёбок.

Аноним 20/09/20 Вск 14:15:14 #207 №1811472 
>>1811462
Ты хоть понимаешь, что поиск по паттерну соптизируется и будет работать лучше, чем вот это >>1811470 дерьмо?
Аноним 20/09/20 Вск 14:19:02 #208 №1811474 
>>1811472
https://stackoverflow.com/a/24603325
https://stackoverflow.com/a/17701264

Вывод: лайк работает лучше, если есть индекс.
Аноним 20/09/20 Вск 15:09:42 #209 №1811514 
>>1811474
Чот в голос. Скажи ты совсем идиот? Пробовал читать что линкуешь?
Аноним 20/09/20 Вск 16:23:46 #210 №1811601 
>>1811514
Идиот здесь ты. В чём, по-твоему, противоречие?
Аноним 20/09/20 Вск 16:42:57 #211 №1811621 
Двощ, делаю тестовые, наткнулся на странную формулировку
Есть две простенькие таблицы: id,id2 и id2,name
Надо вывести id,name двумя способами
И тут я сел в лужу ибо не понимаю что это за способы? То есть про join я в курсе, конечно же. А ещё как их объединить можно, через что?
Аноним 20/09/20 Вск 17:20:24 #212 №1811652 
>>1811621
Всратых способов можно много придумать.
1. select id, name from t1, t2 where t1.id2 = t2.id2 -- тоже джоин, но неявный
2. select id, (select name from t2 where t2.id2 = t1.t2) from t1
3. Написать какую-нибудь процедуру, где вложенным циклом проходишься по обеим таблицам и вручную джоинишь.
Аноним 21/09/20 Пнд 10:31:57 #213 №1812263 
>>1811621
Жоин и подзапрос же
Аноним 21/09/20 Пнд 12:04:27 #214 №1812341 
clear.png
4tables.png
6tables.png
Как правильно организовать базу с тремя таблицами со связями многие ко многим?
База для дискорд бота. В дискорде есть сервера (таблица guild), пользователи (user), роли пользователей на сервере (role). Пик № 1

У сервера может быть много пользователей и ролей. Пользователь может состоять на многих серверах и иметь много ролей. Не могу придумать схему базы. Пока остановился на двух вариантах
Первый кажется проще: пик № 2, тут все связи хранятся в одной таблице. Насколько это правильно?
Второй кажется логичнее: пик № 3, но чтобы сформировать простой запрос, понадобится вереница из джоинов.
Как будет правильнее?
Аноним 21/09/20 Пнд 12:35:23 #215 №1812370 
>>1812341
Средний пик - это результат джойна guild_user, guild_role и user_role с третьего.

Второй вариант быстрее (результат джойна уже в готовой таблице) третий займет меньше байтиков под хранение. Но если юзеров у тебя не на терабайт, никакой реальной разницы нет.
Аноним 21/09/20 Пнд 12:55:29 #216 №1812398 
Есть одно индусское поделие, регулярно вызывающее в базе предприятие дедлоки.
Когда оно хочет присвоить новый порядковый номер счёту или другой писульке, оно, вместо того чтобы пользоваться родным механизмом секвенсов делает так:

select number from отдельная_индусотабличка_с_последними_присвоенными_номерами FOR UPDATE

Потом соответственно update number=number+1

Как исключить блокировки? Пилить родной секвенс для каждой таблицы, представляющий документ долгий мартышкин труд, их много.

Просто убрать for update - возможное дублирование сгенеренного номера.
Аноним 21/09/20 Пнд 12:56:41 #217 №1812399 
PS номер содержит буквы и цифры, так что просто инкремент не вариант.
Аноним 21/09/20 Пнд 13:24:36 #218 №1812426 
>>1812370
Спасибо
Аноним 21/09/20 Пнд 22:35:31 #219 №1812935 
Хай гайс , расскажите пожалуйста, что в вакансии значит оптимизация запросов? Что хотят от меня, что читать? Есть статьи годные или поделитесь личным опытом.
Аноним 21/09/20 Пнд 22:56:59 #220 №1812960 
Сап двач.
Зочем вообще нужен ваш SQL, кроме как ради разогрева климата?
Мне кажется, что вы все дармоеды, пока нормальные поцаны архитектурят хайперформанс базы на сырых key-value движках сидите тут и дрочите.
Аноним 21/09/20 Пнд 23:02:49 #221 №1812967 
>>1812960
Как думаешь, что сильнее разогреет атмосферу: SQL-запросы или производство огромного количества более ёмких дисков, чтобы вместить всю эту ненормализованную поеботу?
Аноним 22/09/20 Втр 00:35:27 #222 №1813004 
>>1812935
Это значит есть говнозапрос, который работает неприемлимое количество времени, или вообще не отрабатывает, так как требует недопустимое количество ресурсов - ты берешь и переписываешь его так, что он начинает отрабатывать за приемлимое количество времени, или отрабатывать вообще.

По статьям, литературе
- начальный уровень это базовые статьи по оптимизации, зачем нужны индексы, какие бывают индексы, когда их стоит и не стоит использовать, какие есть базовые способы доступа к данным в чем их отличия и преимущества, типы джоинов и их алгоритмы, типы объединений, способы аггрегаций, партиционирование/шардирование, способы организации данных на диске (колоночное/строковое) вычислительные сложности перечисленных алгоритмов. Все это довольно легко гуглится. Оснавная часть задач сводится к этим знаниям, если разработчики которые писали код - не обладают высокой кваллификацией.

- более продвинутый это уже специализация на конкретной бд. Какие операции из первого пункта лучше и эффективнее выполняются на движке определенной бд, а какие хуже. Предпочтение каким операциям следует отдавать, для данной бд исходя из ресурсов, которые ей доступны на сервере.Умение читать планы запросов и понимать. Понимать в каком месте запроса потенциальная проблема в потреблении ресурсов/скорости выполнения. Понимать какого плана следует достичь для оптимизации, как этого достичь с помощью изменения самого запроса/хинтов. Источники - статьи по оптимизаторам запросов конкретной бд, официальная документация бд. Если в команде более-менее толковые разработчики, то будут возникать в основном задачи такого типа.

- еще потяжелее, это уже углубление в движок бд и то как он взаимодействует с ОС. Тут требуется глубокое знание движка, возможно чтенте исходников бд, если она опенсорсная, понимание и знание некоторых принципов работы ос. Как работает кэширование и внутренние системные буферы бд, какие области памяти выделяются, какие типы памяти использутся, для чего они используются, как устроено хранение данных в файловой системе, логирование транзакций, откат транзакций, какие структуры данных для этого используются, какие процессы пораждаются бд, и какие функции выполняют, как организовано взаимодействие между этими процессами. Но на этом уровне редко попадаются задачи, обычно для их решения приглашают представителей компании, которая занмается разработкой/поддержкой бд.

Помимо этого может быть оптимизация на уровне ЕТЛ процесса или приложения, котрое взаимодествует с бд, путем уменьшения объема обрабатываемых данных/количества операций над ними при получении аналогичного результата, но это уже немного другая тема.
Аноним 22/09/20 Втр 00:55:41 #223 №1813009 
>>1812960
Для каждой задачи есть свой инструмент.
Время отклика не единственная и не основная задача для многих субд. Думаю далеко не все key-value могут похвастаться поддержкой acid, и серьезно проработанной fault-tolerance.
Плюс порог вхождения, sql проще выучить, значит проще найти специалистов - для владельца продукта это тоже важно. Плюс при значительном объеме оперативки когда вся база может быть закэширована, и скорость не является первостепенным фактором, то зачем эксперементировать на чьих-то костылях, когда есть проверенное годами решение.
Аноним 22/09/20 Втр 16:01:02 #224 №1813307 
>>1813004
Спасибо анон, я так понял что половина из начального это работа админа БД, но разрабу это тоже надо, а есть какие-то мастхэвыные статьи/книги?
Когда собеседования прохожу отвечаю:
По индексам я отвечаю что могут по одному полю или по нескольким, ускоряют выборку но замедляют инсерт/апдэйт/дэлит и работать с ними надо исходя из этого.
По джойнам(видимо имеется ввиду inner, left, right и т.д.) тоже, недавно спросили про физический и логический джойн, я впервые про это слышал. И лёгкий гуглеж толком не пояснил мне ответ че к чему.
Типы объединений если это UNION/UNION ALL, хз что про это рассказать, стакает таблицы друг к другу по полям.
Агрегации count/sum/avg тут офк он группирует по заданным полям и вычисляет заданные агрегации.
Может что-то еще дополнительно надо рассказывать?
Аноним 22/09/20 Втр 17:40:12 #225 №1813383 
>>1813307
да нет никаких "админов БД", кроме как в очень крупных и совковых конторах.
Всегда его функцию будет выполнять разработчик.
Как тебе "Админ БД" примет решение какие данные удалять и как изменять алгоритм? Без привязки к продукту это все не работает.

Концепт простой (повторить для каждой субд):
1. Изучи где здесь команда чтобы посмотреть план. Найди там числа просмотренных строк - N (K,L,M,...)
2. Сделай так чтобы NKL*M был поменьше
3. Если нихуя не получилось и в запросе есть Group by - ставишь кликхаус.
4. Если нихуя не получилось в оперативных запросах - ставишь redis или еще какой-нибудь кеш.

Это все.
Аноним 22/09/20 Втр 21:18:09 #226 №1813557 
>>1813307
Ну это смотря как распределены задачи и ответсвенность в команде, бывает что этим занимаются разработчики, бывает что админы. Например разработчики пишут - абы не было синтаксических ошибок, а админы отлавливают самые жуткие вещи и говорят что нужно переписать. Бывает что этим целиком занимаются разработчики, а админы просто рубят сессии неудовлетворяющие определенным требованиям. В общем поразному бывает.

По индексам к примеру - как влияет селективность запроса, на эффективность использования индекса. Нет смысла вычитывать пол таблицы через индекс, простой скан в большинстве случаев пройдет быстрее. Для каких значений индексной селективности какой тип индекса лучше выбирать, стандартное деление btree/bitmap. Выборку они могут ускорять не всегда. По джоинам например - что есть такие гадкие вещи, как cross-join. Основные типы выполнения джоинов внутри бд: hash-join, merge-join, nestedloop. Но это уже ближе ко второму пункту из поста. По объединениям, что union, к примеру скорее всего будет использовать сортировку, чтобы убрать дубликаты, соответсвенно union all отработает быстрее, так как просто прочитает и склеит две таблицы - но результат может отличаться от union.

По литратуре - у oracle довольно хорошо все эти темы расписаны в официальной документации, но это лонгрид и оракловая специфика, хотя +/- везде все похоже, потом только нужно будет подтянуть специфику другой базы.
https://docs.oracle.com/database/121/TGSQL/toc.htm

. У postgres тоже есть хорошие статьи по оптимизатору и стоимости операций, на там как-то разбросана немного информация по разделам.
https://www.postgresql.org/docs/10/performance-tips.html
https://www.postgresql.org/docs/10/using-explain.html

По книгам не подскажу, не встречал и не искал. Статьи на хабрах иногда неплохие пишут
Аноним 22/09/20 Втр 21:28:00 #227 №1813559 
>>1813383
>>1813557
Благодарю.
Аноним 22/09/20 Втр 21:30:35 #228 №1813561 
>>1812967
Адекватно спроектированная KV база (не вчерашним MySQL-PHP-васяном) будет на максимум на 15-20% больше аналогичной SQL базы, только вот кроме процессора (самого энергоёмкого и тепловыделяющего элемента в серверах без гпу), который требует охлаждения (в отличие от HDD/SSD), эта SQL база ещё будет жрать заметно больше оперативки, и так по кругу.

>>1813009
>Думаю далеко не все key-value могут похвастаться поддержкой acid
Ну, уже есть LMDB/FoundationDB/и ещё кто нибудь.
>и серьезно проработанной fault-tolerance
Смотря что именно под этим понимать, но опять же — вопрос времени.
>Плюс при значительном объеме оперативки когда вся база может быть закэширована
При таком объёме можешь расслабить булки — ты вклад в глобальное потепление не делаешь, лул.
Аноним 22/09/20 Втр 21:51:18 #229 №1813578 
>>1813561
> Адекватно спроектированная KV база
Адекватно спроектировать можно и реляционную базу, применяя по необходимости денормализацию и key-value, построенные поверх реляционной БД. В реальных приложениях никто не дрочит на 6 нормальных форм, там ищут компромисс. А пока ты прикрутишь к своей KV-базе всевозможные обёртки, ACID, констреинты, триггеры. вьюхи, выделять тепла это станет ровно столько же, разница будет лишь в том, что то, что раньше делала СУБД, теперь будет делать приложение, и в сумме ничего не изменится.
Аноним 23/09/20 Срд 00:17:35 #230 №1813701 
1
Аноним 23/09/20 Срд 08:41:20 #231 №1813828 
Screenshot223.jpg
>>1813557
>Например разработчики пишут - абы не было синтаксических ошибок, а админы отлавливают самые жуткие вещи и говорят что нужно переписать. Бывает что этим целиком занимаются разработчики, а админы просто рубят сессии неудовлетворяющие определенным требованиям.

Какие же вы пидоры.

Золотые бессмертные строки как нельзя лучше подходят к данному моменту:
Аноним 23/09/20 Срд 08:51:21 #232 №1813830 
>>1813828
ух ты
что это за книга?
Аноним 23/09/20 Срд 08:56:48 #233 №1813831 
>>1813830
Гугл говорит, что эта: http://www.williamspublishing.com/Books/978-5-907144-74-3.html

мимо
Аноним 23/09/20 Срд 10:17:43 #234 №1813903 
>>1813831
ой спасибо
читать её конечно, не буду
Аноним 25/09/20 Птн 16:03:05 #235 №1815912 
Можно на пальцах что такое "протухание" кэша.
Аноним 25/09/20 Птн 16:31:49 #236 №1815963 
>>1815912
Когда значение, хранимое в кеше, становится неактуальным, то есть значение в базе более новое. И нужно обновлять кеш.
Аноним 26/09/20 Суб 19:21:49 #237 №1816953 
Суп, БДач. Можно ли взять для шаражных лаб по БД базы данных для серверов minecraft? Нужно чтобы было 10+ таблиц в базе для хорошей оценки. Будет ли там достаточно таблиц? Если нет, то какую предметную область можно выбрать вместо этой?
Аноним 26/09/20 Суб 19:27:40 #238 №1816960 
>>1816953
Самое популярное для лаб - модель магазина (ну или интернет-магазина). Таблиц можно придумать сколько хочешь. А за игоры некоторые преподы могут и нахуй послать.
Аноним 26/09/20 Суб 19:40:09 #239 №1816975 
>>1816960
Ого, спасибо за такой быстрый ответ. У меня просто воображение плохое, и каждое такое задание "придумайте себе задание" меня вводит в ступор. Модель магазина звучит универсально, ведь можно любой магазин сделать + разобраться в довольно таки прикладной теме.
Чаю тебе.
Аноним 26/09/20 Суб 19:58:05 #240 №1816984 
>>1816975
Обычно, когда мне не хватало в вузе фантазии, я гуглил что-то в духе "лабораторные по базам данных варианты заданий". Но не всегда работало, один из наших преподов вообще сказал нам делать что угодно, но не магазин, ибо надоело.
Аноним 27/09/20 Вск 04:43:53 #241 №1817144 
>>1816953
Бери adventure works от мс
Аноним 27/09/20 Вск 19:14:03 #242 №1817630 
Анончик, помоги. Вот например у меня есть сущность player и vehicle. И у player и vehicle может быть сущность inventory. Нужно обеспечить целостность данных, чтобы при удалении player или vehicle удалялся и inventory. Как это правильно сделать? если бы inventory был только у player то добавляю у inventory поле playerId и на него вешаю ФК, on delete cascade, и всё. А тут как? Делать несколько полей у inventory мол userId vehId выглядит хуевым решением
Аноним 27/09/20 Вск 23:34:40 #243 №1817846 
>>1817630

В твоем варианте только через тригеры на удаление. На чистом SQL ты этого не сделаешь.
Но судя по описанию ты там игру клепаешь. Может тебе стоит немного переработать архитектуру. Почитай про паттерн Entity component system https://en.wikipedia.org/wiki/Entity_component_system и вот еще http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/
Аноним 28/09/20 Пнд 02:56:46 #244 №1817887 
>>1817846
Спасибо, любопытная инфа.
Аноним 28/09/20 Пнд 15:44:23 #245 №1818184 
Наверно платиновый вопрос, но как можно удалить в постгресе БД вместе со всеми связанными джобами? Для mssql решение нашел, а для постгреса в гугле ничего нет. Помогите начинающему недо-DBA
Аноним 28/09/20 Пнд 23:05:44 #246 №1818480 
В dynamo все индексы неимзенямы после добавления (не в смысле сами индексы в таблице, а связанные значения в документах)? И primary, и gsi/lsi?
Аноним 29/09/20 Втр 00:31:17 #247 №1818514 
>>1817630
А они точно должны в одной таблице храниться, эти твои inventory? Inventory транспорта и игрока не могут иметь разную структуру? Или их структура не может изменяться независимо?
Аноним 29/09/20 Втр 10:43:58 #248 №1818691 
image.png
Петухи Уважаемые специалисты по голубым слонам тут?
На пике - причина креша целого постгреса. Контекст - aws_s3.table_import_from_s3.
Правильно ли я понимаю, что если внутри расширения что-то валится с exit code > 0, то вся база падает нахуй?

Предполагаемый исходник расширения:
https://github.com/chimpler/postgres-aws-s3/blob/master/aws_s3--0.0.1.sql
Но это не точно.
Аноним 29/09/20 Втр 10:58:21 #249 №1818696 
>>1818691
>внутри расширения что-то валится с exit code
Поправка, внутри python-функции.
Аноним 29/09/20 Втр 11:04:00 #250 №1818704 
>>1818691
>>1818696
https://postgrespro.com/list/thread-id/1221356#[email protected]
Релевантные баг репорты ПРЯМО ИЗ 2011
Аноним 29/09/20 Втр 12:26:51 #251 №1818744 
image.png
image.png
image.png
Я зачем-то решил пересесть на постгрес, но тут же столкнулся с бедой.
На мускуле я выключал ONLY_FULL_GROUP_BY (по дурости, маленький был).
А сейчас в постгресе не могу совершить запрос.

Есть поле balance, мне нужно вывести его как на 2ом скриншоте, (чтобы было 330 - 2), сам запрос выглядит как на 3м скриншоте, но ругается, что нужно в груп бай и баланс добавить, но так запрос некорректный, помогите правильно составить блин
Аноним 29/09/20 Втр 15:40:05 #252 №1818851 
>>1818744
Блять ты какую-то лютую дичь творишь. Хоть бы обьяснил что хочешь получить
Аноним 29/09/20 Втр 17:57:32 #253 №1818989 
>>1818851
Мне нужны категории, чтобы все что в диапазоне 3300-3399 было в категории 3300, второй столбец это количество входящих туда записей.
Ну и так со всеми категориями, получается
Аноним 30/09/20 Срд 05:23:05 #254 №1819303 
>>1818989
Делай через with. Первой итерацией считаешь сумму, можно сразу через case по группам распределить, потом делаешь group by по группам. Подзапросом тоже можно.
Аноним 30/09/20 Срд 11:14:37 #255 №1819473 
>>1819303
какой кейс еще, я не буду знать всех значений, но мне нужно чтобы каждое значение попадало в свою категорию, выше я скинул скрин рабочий на мускуле, но там был выключен ONLY_FULL_GROUP_BY в постгресе нужно группировать все значения, но так запрос выдает неправильные данные, значит он изначально был написан неверно(?), вот я и пришел за помощью.


Еще раз скажу
Входные данные
3366
3323
7621
7677
7692

То что я хочу получить запросом
330 - 2
760 - 3
Аноним 30/09/20 Срд 11:49:38 #256 №1819496 
>>1819473
Ебтить ты обьясняльщицследующий раз сразу иди нахуй с таким ТЗ

SELECT balance, count(*)


from(
SELECT test,
balance/100 as balance
FROM GOVNO) as q

group by balance
Аноним 30/09/20 Срд 13:29:42 #257 №1819601 
>>1819496
дякую, анон, извини за тз
Аноним 02/10/20 Птн 09:29:22 #258 №1821038 
посоны, а есть тут разработчики БД \ дба из регионов? какая зп считается норм не в маскве?
Аноним 02/10/20 Птн 20:30:53 #259 №1821516 
>>1821038
Минимальная за какую готовы работать.
Аноним 02/10/20 Птн 21:33:43 #260 №1821563 
>>1821516
Нихуя это так не работает, у херочек в методичках написано, что если занижаешь ожидаемую зарплату, то не умеешь оценивать себя, а значит, доверия к тебе быть не может, и мы вам перезвоним.
Аноним 03/10/20 Суб 09:54:14 #261 №1821836 
>>1821563
Давай разбираться, в большинстве вакансий (на вскидку 75%-85%) работодатель не указывает ни вилки, ни потолока. Но в компании такого не может быть, потому что выделяется ставка, экономисты сидят считают затраты на стаф. Отсюда два вывода: вакансия фейковая, либо они ищут кого дешевле(может быть смотрят на цена качество). В рашке, например, нельзя определить стоимость труда по рынку, потому что никто зарплат не пишет, а по тому, как договариваются надо проводить опросы кто честно скажет.
Понятное дело МРОТ никто не попросит. Но попросят к примеру 5 челиков 50к, 60к, 75к, 80к, 85к соответственно, так у трёх последних шансов просто мизер будет, потому что на первых двух будут витязи ипотеки со спиногрызами.
Аноним 03/10/20 Суб 23:33:41 #262 №1822472 
deecVKzMfzo.jpg
Господа анонимы, хочу вкатиться в pl/sql. Что посоветуете почитать?
Аноним 07/10/20 Срд 01:54:15 #263 №1824883 
>>1781628 (OP)
Может кто-нибудь посоветовать учебник по MySQL? Мне нужно хорошо освежить познания в нём, чтобы на собеседованиях пояснять с ноги все типичные вопросы. У меня есть парочка, но они датированы 2000 и 2003 годами.
Аноним 07/10/20 Срд 10:50:56 #264 №1825039 
>>1824883
Возьми свежий учебник Ивана Смузина «react sql на микросервисах»
Хорошая подача материала в мемчиках, примеры из жизни зумеров, в поларок купон деливериклаб.
Аноним 07/10/20 Срд 11:54:02 #265 №1825072 
>>1825039
php тоже изучать по учебнику 2003 года? Что там было, php 4, верно? Берёшь учебник, учишь от корки до корки, а потом на собеседовании у тебя про какие-то лямбды спрашивают, замыкания, магические методы, статическое связывание и всякое ооп. А ты такой гордо "В php этого всего НЕТ! Я точно знаю, так в учебнике написано."
Аноним 08/10/20 Чтв 13:33:18 #266 №1825849 
Привет господа я сейчас пердолюсь с nodejs и вот что я вдруг не очень понимаю.
Что такое коннект к базе данных, и сколько он живет.

В чем суть, при старте приложения но ноде, я в одном из модулей создаю объект - или коннект, или пул коннектов с лимитом около 10.

Коннект с базой - это некое постоянное соединение? Или это просто объект с настройками, который при каждом вызове стучится в базу данных, делает то что должен и закрывается?


Далее в вызывающем коде я из этого объекта ( или из пула получаю 1 из 10 ) получаю соединение, выполняю запрос, получаю ответ, в в конце вызываю языковую конструкцию которая "закрывает" что ли соединени.
А если его вручную не закрывать - что получится?
А сколько в одну единицу времени может быть соединений?
Аноним 09/10/20 Птн 00:34:14 #267 №1826296 
Есть три колонки: фио, группа, возраст.
Как найти группу, если в ней есть более 10 человек с возрастом = 19, например?
Аноним 09/10/20 Птн 01:11:33 #268 №1826304 
image.png
>>1781628 (OP)
Есть база данных с сотрудниками. В ней хранится таблица department - представляет отделы, в таблице employee соответственно хранятся записи о сотрудниках, один сотрудник может быть записать сразу в несколько отделов (или не записан ни в один). Суть в чем: для каждого отдела надо создать "таблицу" вроде той что на пикриле, то есть каждому из сотрудников из этого отдела надо поставит ьв соответствие Проект и некий числовой идентификатор (как хорошо он выполннял работу), как блин такое в реляционках мутить? Знаю чт ов Postgresql есть поле json, пока смотрится логичнее всего: захуярить внутрь таблицы department поле json где ключи будут идентификаторами сотрудников, которые в своб очередь буду ссылать на другой json... В реляционной модели такое можно сделать?
Аноним 09/10/20 Птн 04:56:16 #269 №1826335 
>>1826296
Count
Аноним 09/10/20 Птн 09:18:56 #270 №1826389 
>>1822472
Эх, чот тебе никто не отвечает. Вроде фейерштейн прибыл - нестареющая классика.
Аноним 09/10/20 Птн 09:51:17 #271 №1826409 
>>1826389
Надо добавить в шапку, пусть хоть какая-то шапка будет.
Аноним 09/10/20 Птн 11:06:56 #272 №1826477 
>>1826304
Всего одна новая таблица в которой: employee_id, project_id, score
То есть каждая строка состоит из трех этих колонок (ну еще ключ ForeignKey с constraint чтобы было отношение 1-1 к department)
Аноним 10/10/20 Суб 07:10:01 #273 №1827170 
изображение.png
Что это? Нихуя не пойму как их собирать
Аноним 10/10/20 Суб 17:04:12 #274 №1827401 
Пацаны, что значит ".body" при выборе данных в селекте? Ну например
> SELECT huntaname.body
Синтакис подсвечивает это слово, но чот я нихуя не смог нагуглить на эту тему
Аноним 10/10/20 Суб 19:48:51 #275 №1827500 
>>1827401
Проиграл с тебя.
Аноним 10/10/20 Суб 20:01:23 #276 №1827507 
>>1827401
Скинь DDL таблицы
Аноним 10/10/20 Суб 20:08:18 #277 №1827513 
>>1827500
А чо такова?
>>1827507
Да это со скрина, у меня на руках нихуя нет
Аноним 10/10/20 Суб 20:11:15 #278 №1827517 
>>1827513
У тебя доступ к базе есть?
Сделай select * from эта таблица.
Аноним 10/10/20 Суб 20:15:49 #279 №1827523 
>>1827513
>А чо такова?
То что ты нубло ебаное, почитай про алиасы.
Аноним 10/10/20 Суб 20:30:51 #280 №1827525 
>>1827517
Нету, говорю же, это чисто со скрина тема
>>1827523
> То что ты нубло ебано
Я этого и не скрываю
> почитай про алиасы.
Это не они, там нет AS
Аноним 10/10/20 Суб 20:42:01 #281 №1827534 
>>1827525
Мань, 5 минут в гугле

1)select t.name from table t без as лол

2)select table.name from table без as лол


В селекте или алиас стоит или у тебя таблица huntaname называется, а body там - атрибут.
Аноним 10/10/20 Суб 20:43:10 #282 №1827536 
>>1827525
Ну тогда скрин скидывай. А body может быть чем угодно, вдруг у тебя "синтаксис" подсвечивает вообще все атрибуты.
Аноним 11/10/20 Вск 01:25:07 #283 №1827698 
Сап, двач. Планируем строить аналитический сервис. В сутки у нас ожидается около 5 миллионов событий, это около 10-15 миллионов строк в базе, без ограничений по времени хранения. Real-time не нужен, можем писать данные, и раз в сутки агрегировать. Справится ли с таким MySQL, или стоит смотреть в сторону какого-нибудь ClickHouse?
Аноним 11/10/20 Вск 06:57:10 #284 №1827757 
Как догадаться какой сервер нужен (Процессор память, ядра, поддерживаемые инструкции и т.п.) для той или иной базы данных? Есть какая-то конкретная методология расчёта?
Аноним 11/10/20 Вск 09:13:20 #285 №1827779 
>>1827698
Mysql справится. Не справишься ты.
Поэтому лучше сразу кликхаус.
Аноним 11/10/20 Вск 09:17:43 #286 №1827781 
>>1827757
Никак. В этом суть популярности облаков. Заранее ничего не известно в программной индустрии. Все слишком сложно увязано.

Только 1сники рискуют с потолка цифры выдавать. Или когда ты планируешь очередную копию давно известного тебе софта.
Аноним 11/10/20 Вск 10:00:23 #287 №1827797 
>>1827757
https://www.postgresql.org/docs/13/admin.html
И гуглишь по словам capacity planning.
Аноним 11/10/20 Вск 10:43:01 #288 №1827816 
Аноны, где почитать как работает сам SQL изнутри, как он формирует данные, как, к примеру, работает SELECT вместе с WHERE, как происходит поиск по критериям и можно ли облегчать эту задачу SQL какими-либо способами? В общем не синтаксис, а фундаментальные знания.
И в чем польза индексирования нескольких полей в таблице?
Аноним 11/10/20 Вск 11:16:25 #289 №1827826 
>>1827816
В книжках по базам данных, от субд зависит.
Аноним 11/10/20 Вск 16:11:13 #290 №1827974 
>>1827797
>capacity planning
Добра тебе!

>>1827781
На любой подобный вопрос давно защищено тысяча дипломников и дисеров.
Аноним 14/10/20 Срд 08:11:37 #291 №1829795 
>>1827816
SQL это всего лишь язык. Базка в общем случае делает всё как ты сказал: берёт таблицу, всю перелопачивает, по WHERE всё отсеивает и отдаёт. Если джойны, то создаёт временную таблицу на джойнах и всё то же самое. То есть результат всегда должен совпадать с наивной реализацией.

А вот как это всё оптимизируется это уже более интересный вопрос. Почти везде для оптимизации нужны индексы. Индекс это по сути сортировочка всех строк в определённом порядке по определённым полям. Если условия в WHERE совпадают с тем как создан один из индексов, то бд сможет оптимизировать запрос с помощью этого индекса: она по сути не заглядывает в строки, а ищет только в индексе. Индекс никогда не нужно перебирать от начала до конца чтобы что-то в нём найти.

> польза индексирования нескольких полей
Там логически сортировка другая получается. Потому что каждое из полей ты можешь ASC или DESC, и комбинации полей будут идти друг за другом в разном порядке.
Аноним 14/10/20 Срд 08:33:18 #292 №1829806 
>>1827974
какой нахуй capacity planning?
у тебя каждый раз неизвестная система!

если любишь ебанутые англоязычные псевдоуспешные аббревиатуры вот изучи: https://en.wikipedia.org/wiki/No_free_lunch_theorem
Аноним 14/10/20 Срд 09:46:35 #293 №1829824 
всем здарова, у меня такой вот вопрос, задался вопросом как бд подключить к сайту, полез на ютуб, а там какие то старые дядьки своим ПХП мне в рот лезут, можно ли как то без ПХП подключить бд к сайту?
Аноним 14/10/20 Срд 09:51:39 #294 №1829825 
>>1829824
если кому интересно нашел видос от чела из майкрософта
https://www.youtube.com/watch?v=VCQ-VMG8Bao
Аноним 14/10/20 Срд 10:12:27 #295 №1829833 
>>1829824
Странный вопрос. БД принципиально подключается к бэкенду можно и к фронтенду, но не важно. Если у тебя бэкенд на ПХП, то никак без ПХП ты этого не сделаешь, будь то вручную или косвенно через цмски и движки.
Аноним 14/10/20 Срд 10:27:16 #296 №1829843 
>>1829824
Пиздец ты мудачина.

Попробуй для начала Google Forms и Google Sheets использовать в качестве "базы данных".
Через год приходи в тред.
Аноним 14/10/20 Срд 12:14:30 #297 №1829946 
>>1829806
Ты не разбираешься в теме. Не пиши здесь больше и не вводи людей в заблуждение. Информация по capacity planning, а так же документация к СУБД дают исчерпывающую информацию по выбору оборудования и тюнинга самой СУБД под конкретные нагрузки.
Аноним 14/10/20 Срд 13:29:31 #298 №1830042 
>>1829843
хочу на sql
Аноним 14/10/20 Срд 13:47:09 #299 №1830061 
Решил почти все задачи на sql academy (все лёгкое), но ушлые разрабы не дают сертификатик без премиум аккаунта.
Прорешал задач сорок на sql-ex, буду дальше их добивать, они там реально сложнее

Задачки это хорошо, но есть ощущение что я просто дрочу на месте без прогресса. Куда смотреть дальше, чтобы получать знания приближенные к реальности? Написать приложение на комп с работой баз данных?
Может почитать что-то про правильные построения самих бд?
Аноним 14/10/20 Срд 14:43:11 #300 №1830123 
>>1830061
Скачиваешь книгу Куликова “Работа MYSQL, MS SQL SERVER и ORACLE в примерах”. Тут определяешься с базой данных. Если это SQL Server, то скачиваешь на торренте данную СУБД. Если Oracle, то скачиваешь образ для WMvare с их сайта, или используешь их online СУБД.
Далее. Находишь в зависимости от СУБД серьезные книжки.
Аноним 14/10/20 Срд 14:53:34 #301 №1830141 
>>1829946
можно подумать ты разбираешься.
тебе просто удалось угадать поведение субд для 3.5 приложений с которым тебе довелось работать.
Аноним 14/10/20 Срд 14:56:53 #302 №1830143 
>>1830061
Найди работу в интеграторе. В реальности на СУБД такие вещи пилят (особенно если это oracle или sql server), что ты охуеешь такое с нуля писать.
Аноним 14/10/20 Срд 14:59:41 #303 №1830149 
>>1830143
Что значит "работа в интеграторе"?
Что ещё надо знать для устройства на работу по базам данных? Кроме синтаксиса у самих бд
Аноним 14/10/20 Срд 15:13:02 #304 №1830160 
>>1830149
Значит работа в аутсорс конторе, котора продаст твою жопу банку, где ты увидишь код написанный поколениями с самописными etl-системами, очередями и пакетами хранимок на 10k строк.
> Кроме синтаксиса у самих бд
Лiл. Ничего. https://docs.oracle.com/database/121/ARPLS/toc.htm - но со временем будешь узнавать больше из этого списка.
Аноним 14/10/20 Срд 15:18:52 #305 №1830165 
>>1830160
>>Ничего
Типо я вот порешал задачи на сайтах, и такой красивый могу претендовать на джуна? Звучит слишком просто, или мне по началу за такую должность только на воду без хлеба хватит денег?
Я проходил собес по бд, но жидко обосрался от нервов и там пришлось бы изучать type script
Аноним 14/10/20 Срд 17:02:48 #306 №1830343 
>>1830165
Реально тебе дело говорят - иди работай. Без опыта работы на реальном проекте - чем бы ты ни занимался в свободное время - тебе по началу будут предлагать на "хлеб и воду", очень маленький шанс, что кто-то тебе даст ставку мидла, потому-что ты дома что-то делал.
Задачи решаешь - иди работай, перед собесом на конкретную вакансию подтяни просто знания по особенностям работы конкретной базы которая указана в вакансии, типы там всякие, функции работы со строками, числами датами, оптимизацию немного погугли в все. Дальше можно дома заниматься изысканиями и исследованиями если работа - фуфел оказалась, и уже на следующем собесе рассказывать, что ты такими крутыми штуками на работе занимался)
Аноним 14/10/20 Срд 20:00:51 #307 №1830531 
>>1830343
Проблема только в том, что я не безработный студент на шее у мамки, и пиздец как не хочется сидеть въебывать джуном за 15к, когда я сейчас деградирую за 30.
Хотя с другой стороны я понимаю что за просто так мне только хуй за щеку присунут.
Аноним 14/10/20 Срд 22:06:54 #308 №1830678 
>>1830531
Мне сначала 50к предложили. Через 2 месяца я ушёл на 70к, потом 90к, сейчас вот оффер на 140к.
2 года опыта работы, а sql-ex я так и не добил, но когда-нибудь сертификат там я получу.
Аноним 15/10/20 Чтв 09:11:31 #309 №1830904 
>>1830343
>Реально тебе дело говорят - иди работай
Проблема таких советов - не факт что работа даст скилл и опыт.

Потому что без скилла и опыта возьмут максимум на галеру или там в госконтору. Ни там, ни там ничего правильного делать не получится.
А в конторы, где можно получить полезный (ключевое) опыт не берут без этого опыта.


Я сейчас тружусь в такой конторе. Пишу в одиночку серьезный софт обеспечивающий полный жизненный цикл организации (учет и оперирование всего что происходит), так как предыдущий морально устарел лет на 20, не соответствует никаким требованиям, дико не удобен и совершенно не пригоден для допиливания. Поэтому собрались и решили сделать по новому модно и молодежно.

Как бы у меня уже есть опыт разработки приложения от пустого окошка, до конечного разворачивания на говнокомпах (у нас до сих пор есть несколько с Windows XP из-за привязанных к ним железках). Более ста одновременных подключений пользователей. Базы данных по 40гб (ведь их-то нельзя было резать, вся история должна быть доступна)

И...

Я даже до собеседований на джуна (но с зарплатой выше чем мне платят сейчас, ясен пень речь не про конторки с 20к деревяных оплатой) нигде еще дойти не могу - мы вам перезвоним.

Я хз как быть
Аноним 15/10/20 Чтв 13:00:25 #310 №1831072 
>>1830904
Ну я сужу по своему опыту - и могу сказать, что когда у меня был начальный уровень - практически любые задачи давали мне полезный опыт - если я не делал их на отъебись и побыстрее. И конечно это должны были быть реальные задачи - а не "заполни формочку нарисуй квадратик".Просто сидел и разбирался, почему не работает, как сделать лучше, как правильно, как другие люди делают и почему так, а не иначе.

И ты найдешь такие задачи с большой долей вероятности, как во всяких яндексах, так и в энтерпрайзах. В энтерпрайзах если повезет иногда можно заниматься параллельно своими делами и исследованиями. А в яндексах если не повезет - сидеть и несколько лет херячить запросы к api.
Просто в яндексах создаются более комфортные условия, и обучению и развитию сотрудника уделяется больше внимания до определенного этапа.

И если ты занимаешься кодингом, я не переходил бы на твоем месте чисто в sql. Если интересны базы и работа с данными - посмотри в сторону highload.

Судя по описанию того что ты делаешь - ты работаешь на каком-то производстве/предприятии не в милионнике, я угадал? Если да - попробуй поискать удаленку в ДС-ах, может получится проще и быстрее
Аноним 16/10/20 Птн 21:36:27 #311 №1832300 
Делаю задачку из пхп треда, нужно сделать сайт с тестами (аля тест на зека или кто ты из наруто).
Я выбрал такую схему: таблица с тестами, таблица с вопросами и таблица с вариантами ответов. У каждого варианта ответа есть id вопроса в котором он используется и у каждого вопроса есть id теста в котором он используется.
Вроде выглядит адекватно, но я не представляю как мне теперь по id теста вытащить за один запрос все вопросы к этому тесту и все варианты ответов к этим вопросам. Я так понимаю нужно юзать join или как?
БД - PostgreSQL, если это важно
Аноним 16/10/20 Птн 22:02:46 #312 №1832327 
image.png
>>1832300
https://ru.wordpress.org/plugins/quiz-maker/
Пхп - это язык, где программирование доведено до примитивизма. Если возникла какая-то проблема, нужно первым делам искать нужно даже не ответ на StackOverflow, а плагин для WordPress.
Но да ладно. К примеру, есть tests (id, title) и questions (id, text, test_id). Можно написать select * from tests, questions where tests.id = questions.test_id and test.id = (id теста), здесь выполнится неявный join, и у тебя будет результат:
tests.id | title | questions.id | text | test_id
1 | тест1 | 1 | вопрос1 | 1
1 | тест1 | 2 | вопрос2 | 1
1 | тест1 | 3 | вопрос3 | 1
Как видишь, вопросы разные, но название теста и его id одинаковые, то есть некоторые данные дублируются. Далее добавить к запросу answers, и всё.
Аноним 17/10/20 Суб 08:02:30 #313 №1832487 
>>1829824
Без указания, на каком движке крутится сайт, вопрос бесмысленный
ваш Кэп
Аноним 17/10/20 Суб 19:31:26 #314 №1832930 
Есть следующая структура данных:
id: string
children: string[]
И еще какие-то поля.
В children хранится список id. Может быть несколько уровней вложенности. Как за один запрос вытащить все дерево сущностей начиная с какого-то id? В монге для такого можно сделать DBRef на ту же коллекцию.
Важная деталь - данные хранятся в эластике, но треда по nosql тут вроде нет.
Аноним 17/10/20 Суб 20:43:18 #315 №1833024 
КАК ВКАТИТЬСЯ?
Аноним 18/10/20 Вск 11:01:49 #316 №1833361 
>>1833024
не быть тупым ебланом, забаненым в гугле

мимо
Аноним 19/10/20 Пнд 07:44:45 #317 №1834144 
Товарищи ребятки здравствуйте!
Хочу вот чем поинтересоваться, правильной ли дорогой собственно говоря иду? Может кто из вас подкинет здравых мыслей.
Вводная: Пашу инженером конструктором на околосовковом предприятии. Неплохо знаю САПР со стороны технологов конструкторов. Знаю о существовании служб, занимающихся сопровождением САПР и КТТП.
Есть желание: перейти из сферы машиностроения через сопровождение САПР в айти. Так как на текущем месте и должности развиваться в айти не вижу возможности.
Задача общая исходя из советов грамотных товарищей и самоопределения: грести в Девопс.
Для этого решил начать с изучения sql поэтому сюда и пишу собственно
Предложили: изучать sql с помощью книги sql для чайников (т.к. в sql не разбираюсь. Только в универе что-то делал) плюс читать документацию по PostgreSQL. Также предложили пройти пару курсов в интернете.
Вопрос: правильная ли стратегия? Может что-то упускаю? Нужно ли что-то координально менять и глядеть как-то по другому на это вот все дело?
Также хочу попросить полезные источники информации для начинающего в области sql.
Пригодится любая информация.
Аноним 19/10/20 Пнд 09:19:55 #318 №1834204 
>>1834144
https://www.youtube.com/c/PostgresProfessional/playlists
Аноним 19/10/20 Пнд 17:06:23 #319 №1834646 
>>1834144
Антоша никогда не изучай ничего по книгам ДЛЯ ЧАЙНИКОВ
Аноним 19/10/20 Пнд 17:44:58 #320 №1834671 
123.jpg
Уточните, а разве можно так путь к таблице писать? Этот запрос сможет что-то выполнить?
Аноним 19/10/20 Пнд 17:49:38 #321 №1834674 
>>1834671
NTFS не умеет в SQL.
Зато MS SQL Server умеет.
Аноним 19/10/20 Пнд 17:53:21 #322 №1834680 
>>1834674
Можно для дауна студента первых курсов объяснить чуть проще?
Аноним 19/10/20 Пнд 18:00:14 #323 №1834694 
>>1834680
Надо знать, что за БД, в зависимости от диалекта там может быть что угодно. Тогда, может, кто-нибудь знающий подскажет.
Аноним 19/10/20 Пнд 18:00:59 #324 №1834697 
>>1834694
Макета или доп. условий нет. Только этот запрос.
Аноним 19/10/20 Пнд 18:05:59 #325 №1834706 
>>1834697
Надо знать контекст, вдруг это просто псевдокод.
Аноним 19/10/20 Пнд 18:34:03 #326 №1834763 
>>1834706
Его, к сожалению, нет.
Допустим, в каких случаях
тот запрос сможет что-то выдать?
Аноним 19/10/20 Пнд 18:44:31 #327 №1834776 
>>1834144
Devops помоему слабо связан с sql. Если базы данных на проекте нет, то никак. Если хочешь в devops - то тебе надо грести скорее в unix-админы, получать там базовые знания по администрированию, а потом на это накладывать знания о всяких приблудах типа docker-ов, ansibl-ов, jenkins-ов и git
Аноним 19/10/20 Пнд 18:50:33 #328 №1834783 
>>1834763
> Его, к сожалению, нет.
Ну и забей тогда.

> Допустим, в каких случаях тот запрос сможет что-то выдать?
Если СУБД поддерживает такой синтаксис. Ничего конкретнее сказать нельзя.
Аноним 19/10/20 Пнд 18:50:50 #329 №1834784 
>>1834763
Это похоже на внешнюю таблицу. По указанному пути должен лежать скорее всего файл в определенном формате, например csv. Вроде в sqlserver такой синтаксис возможен, но путь тут юниксовый указан
Аноним 19/10/20 Пнд 18:52:00 #330 №1834786 
>>1834783
Цэ тестовое, я б забил.
Аноним 19/10/20 Пнд 20:31:09 #331 №1834843 
1
sageАноним 19/10/20 Пнд 21:23:05 #332 №1834859 
>>1834843
Нет блять, 0.
Аноним 20/10/20 Втр 00:09:26 #333 №1834979 
Чуваки, у меня вопрос. Сам я вообще sql не знаю, делаю по работе только select по определенному запросу, в котором меняю where в зависимости от служебной необходимости.
Тут столкнулся с необходимостью вытащить из БД большой объем данных.

К примеру, у меня есть такой запрос:

SELECT ID, Name, Birthday
FROM Ants
WHERE ID LIKE '4464558'
OR ID LIKE '5645647'
OR ID LIKE '5431546'
OR ID LIKE '2678654'
OR ID LIKE '8864587'

Проблема в том, что в данной конкретной задаче этих ID не пять штук, а 30000, они уникальны, не повторяются, не соответствуют никаким диапазонам.
Я написал этот запрос с 30 тысячами OR и понимаю, что такой запрос - это ебланство. Но не понимаю, каким образом должен выглядеть нормальный запрос при необходимости вытащить данные именно при таких условиях. Толкните в нужную сторону.
А еще SQL Server Management Studio просто зависает после открытия такого большого запроса.
Аноним 20/10/20 Втр 05:35:35 #334 №1835071 
>>1834979
Так не будет работать, есть ограничение на количество условий в where. Тебе нужна оберка которая будет скармливать запрос частями
Аноним 20/10/20 Втр 06:15:57 #335 №1835078 
>>1834979
Если эти ID можно выбрать селектом из базы, тогда это просто (join, или cte, или `ID in (select id from ...)`, ит.п.)
Если же они вне базы, тогда только по частям.
Аноним 20/10/20 Втр 16:50:19 #336 №1835476 
>>1834979
Можно через IN, но тоже хуйня.
Взрослый вариант это сделать временную таблицу с твоими айдишниками, а потом заджойнить с нужной.
Кури, что такое temporary table короче.
Аноним 20/10/20 Втр 17:02:21 #337 №1835486 
>>1834979
>делаю по работе только select по определенному запросу, в котором меняю where в зависимости от служебной необходимости
Совсем дегенерат? Кем работаешь?
Аноним 21/10/20 Срд 02:06:38 #338 №1835856 
image.png
SELECT department
FROM employees
WHERE position = 'Software Developer'
GROUP BY department
HAVING COUNT(position) < 5

Посоны, нормально высрал? Проверить негде бля.
Аноним 21/10/20 Срд 09:54:01 #339 №1835954 
>>1835856
вроде ок
Аноним 21/10/20 Срд 13:03:04 #340 №1836054 
>>1830678
А какие знания были,когда 50к получал?
Разработка веб-приложения для хранения и защиты БД Аноним Аноним 21/10/20 Срд 20:19:14 #341 №1836400 
Гайз! Нид хелп, плз! Как юный пекус, не имеющий опыта в написании курсовых. Советов мне! В чём может быть научная новизна в приложении - аналога oracle?
Что касается актуальности, то функционал веб-приложения реализуется через браузер, полностью поддерживает расширения CSS и полный набор HTML-тегов, а также отсутствует привязка к стандартной библиотеке. Обеспечена концепция детализации и перекрестная фильтрация. Встроен аппарат статистики и анализа данных, возможность построения 3D моделей. Обеспечена высокоуровневая защита данных через соответствие паттерну.
Аноним 22/10/20 Чтв 10:21:32 #342 №1836676 
С чего начать изучение SQL?
Посоветуйте сайтов/книг/методичек из универов, про БД
Аноним 22/10/20 Чтв 13:23:55 #343 №1836839 
>>1836676
1. Освой самостоятельно sql Бен Форта
2. Sql ex
Аноним 22/10/20 Чтв 15:13:17 #344 №1836952 
>>1781628 (OP)
>-Игнорируем конкаренси-шизика, не понимающего, зачем базы данных нужны
Это что за индивид?
Аноним 22/10/20 Чтв 15:17:58 #345 №1836957 
>>1836952
https://2ch.hk/pr/arch/2019-10-09/res/1406455.html
Аноним 22/10/20 Чтв 16:00:02 #346 №1836984 
>>1836676
Мне видеокурс Заура Трегулова очень помог "SQL с нуля до сертификата Oracle" - на скорости х1.5 - х2 самое то!
Аноним 22/10/20 Чтв 16:16:00 #347 №1837000 
Есть ли какие нибудь курсы/статьи для практикующего разработчика не дба, то есть ровно те знания, что нужны деву средней руки
Аноним 22/10/20 Чтв 17:42:28 #348 №1837086 
Гарантирован ли порядок присвоения столбцов в update statement'е?
Например в скрипте
update test_table
set
description = code,
code = replace(lower(code), ' ', '-');
могу ли я быть уверен, что всегда сначала обновится description, а потом после этого code?
Аноним 22/10/20 Чтв 18:15:56 #349 №1837122 
>>1837086
Слева-направо выполняется, про гарантии хуй знает, надо курить доки конкретного сорта дб.
Аноним 22/10/20 Чтв 18:21:55 #350 №1837129 
>>1837086
https://stackoverflow.com/questions/2203202/sql-update-order-of-evaluation
Аноним 22/10/20 Чтв 18:43:10 #351 №1837154 
15807601375510.jpg
Рубрика "читая ченджлоги"

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-22.html
>MySQL now implements derived condition pushdown for eligible queries.
блядь! не прошло и 20 лет! ну теперь то весь говновеб залетает!

>The InnoDB memcached plugin is deprecated and support for it will be removed in a future MySQL version.

Вот это я вообще не понял. Кому он мешал?
Хотя и не использовал, но тенденция все портить меня давно не радует.

>From MySQL 8.0.22, the statements START SLAVE, STOP SLAVE, SHOW SLAVE STATUS, SHOW SLAVE HOSTS and RESET SLAVE are deprecated.

Ну а это вообще пиздец.
Ладно хоть для совместимости старые операторы и статусы работают.
Аноним 24/10/20 Суб 14:35:56 #352 №1838595 
Как обстоят дела с релокацией у всяких ETLщиков и прочих разрабов БД?
Аноним 24/10/20 Суб 21:37:39 #353 №1838962 
Подскажите дауну, почему так не работает:
select maker from (select PC.model, PC.speed, Product.model, product.maker
from PC LEFT JOIN product on Product.model = PC.model where pc.speed >= 450)
В скобках же должна создаться новая таблица.
Задача с sql-ex.ru: Найдите производителей ПК с процессором не менее 450 Мгц. Вывести: Maker
Аноним 24/10/20 Суб 22:55:59 #354 №1839024 
>>1838962
После скобок надо имя какое-нибудь этой таблице дать.
Я любую букву пишу.

Вобще, переусложнённый запрос, хватило бы:
SELECT Product.maker
FROM PC
LEFT JOIN Product ON Product.model=PC.model
WHERE PC.speed >= 450;
Аноним 25/10/20 Вск 07:49:22 #355 №1839144 
>>1838595
да кому они нужны? индусов дохуя
Аноним 29/10/20 Чтв 17:04:22 #356 №1843081 
кто юзал squirrel sql client, там есть cli версия, может кто подскажет как ею пользоваться, команда connect(alias) выполнилась, но признаков успеха не успеха почему-то нет, но например команда exec("SELECT * FROM test") уже валится с нул поинтер экспешн, хотя в гуи версии всё хорошо работает
Аноним 30/10/20 Птн 10:17:41 #357 №1843564 
sql-ex141.png
Задача 141 sql-ex.ru

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

Сделал вот такой запрос:

SELECT name,
CASE
WHEN DATEDIFF(DAY, mdate1, '2003-04-30') > 0 THEN DATEDIFF(DAY, mdate, mdate1)+1
ELSE CASE
WHEN DATEDIFF(DAY, mdate, '2003-04-30')+1 > 0 THEN DATEDIFF(DAY, mdate, '2003-04-30')+1
ELSE 0
END
END
FROM
(SELECT sl1.id_psg,
mdate,
mdate1
FROM (
(SELECT id_psg,
min(date) AS mdate
FROM pass_in_trip
WHERE id_psg in
(SELECT id_psg
FROM passenger)
GROUP BY id_psg) sl1
INNER JOIN
(SELECT id_psg,
max(date) AS mdate1
FROM pass_in_trip
WHERE id_psg in
(SELECT id_psg
FROM passenger)
GROUP BY id_psg) sl2 ON sl1.id_psg = sl2.id_psg)) sl3
INNER JOIN passenger ON sl3.id_psg = passenger.id_psg;

На тренировочной базе сошлось, а на тестовой (4) несовпадения.
ЧЯДНТ.
Аноним 31/10/20 Суб 00:02:19 #358 №1844424 
o.png
помохите только вкатился,
https://sql-academy.org/ru/guide/sorting
Аноним 31/10/20 Суб 01:45:13 #359 №1844512 
>>1844424
Пиздуй гуглить валенок, такую хуйню даже спрашивать стыдно
Аноним 31/10/20 Суб 13:30:23 #360 №1844732 
>>1843564
Я так понимаю таблица у нас имеет вид
Дата_полёта|ФИО

Вот моё виденье:
1) Делаем выборку только за апрель
2) Групируем по фамилиям.
3) Выбираем максимальную и минимальную дату полёта и считаем количество дней между ними.
Аноним 31/10/20 Суб 13:31:04 #361 №1844733 
>>1844732
А ёбана, код отклеился

SELECT

name,
datediff(dd,max(date),min(date)) as КоличествоДней

from fly

where date>='20030501'
and date<='20030530'

group by name
Аноним 02/11/20 Пнд 19:54:49 #362 №1846506 
Так блин, что-то не врубаю, как мне вставить в таблицу значения так, чтобы они обновили текущие строки а не просто вставили новые?

Вот скажем есть таблица где 2 колонки: имя (varchar) и возраст (integer). В таблице уже есть некоторые записи, как мне вставить туда новые записи так чтобы в случае совпадения имен уже существующая строчка перезаписывалась?
Аноним 03/11/20 Втр 00:34:30 #363 №1846734 
Анон, готовлюсь к собесу (веб-макака), дай каких-нибудь адекватных задач.
Только именно адекватных, не нужно блять олимпиадной ебалы. В принципе обычно спрашивают что-нибудь на джойн + группировка. Такое уже на уровне подкорки просто из практики. Но боюсь если хоть чуть посложнее спросят, то поплыву. Вот хочу просто хоть немного потренироваться.
Аноним 03/11/20 Втр 01:06:47 #364 №1846745 
>>1846506
MERGE
Аноним 03/11/20 Втр 11:44:44 #365 №1846963 
>>1781628 (OP)
Возможно платиновый вопрос но как в постгресе удалить БД вместе со всеми связанными джобами? Весь гугл перерыл а даже намека не нашел. Для MSSQL все просто а тут какой-то затык.
Аноним 03/11/20 Втр 20:55:46 #366 №1847531 
>Какой опцией в SQL обозначается выборка по различным значениям?
Подскажите что имеется ввиду вообще?
Аноним 04/11/20 Срд 11:22:54 #367 №1847767 
>>1847531
distinct видимо
Аноним 04/11/20 Срд 15:04:55 #368 №1847926 
sqlite-sample-database-color[1].jpg
Аноны, объясните значки на концах линий, показывающих связи между таблицами на пикче.
Я знаю только отношения 1:1 1:M и M:M. А тут значков явно больше.
Аноним 04/11/20 Срд 15:07:38 #369 №1847927 
>>1847926
Ты nullable не учел
Аноним 04/11/20 Срд 15:09:57 #370 №1847931 
>>1847767
А, я понял. Спасибо.
Аноним 04/11/20 Срд 18:21:24 #371 №1848070 
Аноны, у меня есть таблицы в postgresql: purchases items, соответсвенно покупак на один итем может быть много, у items есть колонка price, как мне посчитать процент от продаж, который занимает один итем, в одном запросе не получается выбрать сумму для всех итемов и сумму для всех покупок одного итема, пробовал over() но там нельзя использовать where который мне нужен, пробовал with использовать, чтобы запомнить сумму, но тоже ошибка вываливается, вот пример запроса, который должен быть

select items.id, items.price, count(purchases.item_id), sum(items.price), /Тут должны быть проценты/ from purchases
inner join items on items.id = purchases.item_id
where date BETWEEN '20190101' and '20200101'
group by items.id
order by sum(-items.price)
limit 10;
Аноним 05/11/20 Чтв 00:07:18 #372 №1848347 
>>1781628 (OP)
В чем принцип работы CRM-систем? (везде где ни читаю какая-то инфоцыганская херня для манагеров и продаванов) Чем отличается от облачной БД? И каков вообще принцип функционирования этой херни?
Аноним 05/11/20 Чтв 01:30:47 #373 №1848397 
>>1848347
Ну прост. Собираешь данные о клиентах и все. Не забываешь им перезванивать. Смотришь отчеты.

Это тебе может кажется пургой, а люди простейшего накопления информации не делают.

По сутт принципа нет. Есть некое название типа ПО по предметной области.
Аноним 05/11/20 Чтв 01:45:56 #374 №1848402 
image.png
>>1847926
Есть такая система
Аноним 05/11/20 Чтв 03:13:00 #375 №1848408 
>>1847926
>>1848402
У этого есть название:
https://en.wikipedia.org/wiki/Entity–relationship_model#Crow's_foot_notation
Аноним 05/11/20 Чтв 07:30:01 #376 №1848434 
Как вкатиться?
sql-ex.ru + sql-tutorial.ru ? или может есть на степике курсы какие?
Аноним 05/11/20 Чтв 08:46:28 #377 №1848452 
>>1848434
А зачем тебе? Вкатывайся в рякт
Аноним 05/11/20 Чтв 09:03:15 #378 №1848456 
>>1848452
получил повышение на работе, теперь работаю с и стал единственным ответственным за бд
много всего навалилось, пока работаю с готовыми отчетами/запросами от предыдущего человека, первое время он помогал если возникали вопросы и трудности
мои знания в скл закончились года два назад на курсе по бд когда получал вышку, естественно тогда забивал хуй и делал минимум чтобы получить зачет/экз/сдать курсач
сейчас нужны знания на случай чп (вдруг че сломается или понадобится написать новый запрос/отчет)
да и мой предшественник посоветовал изучить это дело сам он практиковался на sql-ex.ru и съябывать на место получше как сделал он сам, благо ресурсы соответствуют чтобы расти
Аноним 05/11/20 Чтв 09:54:29 #379 №1848467 
>>1848456
то есть ты ещё два года назад был студентом, а теперь работаешь и уже успел получить повышение, да ещё без особых знаний?

чо-та начинаю верить дефицитошизикам из соседнего треда

Аноним 05/11/20 Чтв 10:02:03 #380 №1848470 
>>1848456
ну ты и вруша. либо ты гений с уникальными навыками и знаниями, либо вброс для двача

>>1848467
просто он блатной
Аноним 05/11/20 Чтв 10:06:07 #381 №1848474 
>>1848470
да не, почему
всякое бывает. видел в провинции мелкую конторку, начальство которой пилило бабло на заказиках от гос-ва. у них был похожий принцип набора кадров
Аноним 05/11/20 Чтв 10:06:59 #382 №1848475 
>>1848467
хз че за дефицитошизики, не был в соседнем треде
устроился еще студентом на линию тп, получил образование - перевели в отдел внедрения, там как раз попал в подчинение челику на чье место я попал, сейчас он ушел, а я на его место
история смешная на самом деле, в работе все нравилось, кроме отношений с ним, он все время меня дрочил, загружал работой бывало я заметно перерабатывал относительно других. я его просто ненавидел и хотел уволиться, все время казалось что это личная неприязнь, продолжалось около года. в итоге когда он увольнялся - посоветовал меня на свое место, меня даже без лишних вопросов повысили (был 5 минутный диалог с начальником, вопросы в стиле "Вот Имя тебя советовал, говорил ты хорошо работаешь и справляешься, ну как справишься?")
щас благодарен тому челику, ну и хочу послушаться его совета и вкатиться и дальше развиваться в этой области
к тому же рабочее место есть, так скажем условный трамплин, для начала нужно обучиться чтобы хотяб соответствовать своей должности, а дальше развиваться и съябывать

ну и вопрос повторю: sql-ex.ru + sql-tutorial.ru ? или что-то еще посоветуете?
Аноним 05/11/20 Чтв 10:08:08 #383 №1848478 
>>1848474
ты попал в точку
Аноним 05/11/20 Чтв 11:07:33 #384 №1848502 
Решаю 18 задачу в скл-ех, пиздос встал, не могу выкупить, как там эти переменные вводятся, а потом еще по ним два иннер джоина. Если кто может глянуть, помогите, пожалуйста, посоветуйте статью почитать на эту тему.
Аноним 05/11/20 Чтв 11:08:20 #385 №1848503 
Ответ кидать не надо, если что.
Аноним 05/11/20 Чтв 11:37:28 #386 №1848517 
>>1848502
Братан, это задача про цветные принтеры?
Посмотрел свое решение, и походу ты слишком усложняешь.
Плюс там же к каждой задаче есть рекомендованые темы
Аноним 05/11/20 Чтв 13:10:42 #387 №1848569 
>>1848517
Блядь, результат получил верный, но теперь на проверочной базе тест не прошел. Ты сколько примерно эту задачку решал? Я сижу второй день, и у меня чувство, что я тупой, как валенок.
Аноним 05/11/20 Чтв 13:45:01 #388 №1848585 
>>1848569
Конкретно ее решил скорее всего быстро. Но над другими езадачами аналогично сидел пару дней и пытлася решить.
Аноним 05/11/20 Чтв 15:27:04 #389 №1848673 
>>1848585
Все, решил. Нахуя там груп бай?
Аноним 05/11/20 Чтв 15:47:01 #390 №1848707 
>>1848673
Я не знаю, я решал без группировки)
Аноним 05/11/20 Чтв 15:54:16 #391 №1848717 
>>1848673
Скинь решение, я потом свое дам
Аноним 05/11/20 Чтв 16:18:14 #392 №1848726 
Screenshot20201105-161606.png
>>1848717
Сорян, что фотография, не с домашнего пека сижу. Ну я понял, что там груп бай можно заменить дистинктом. Коварная штука этот проверочный набор данных, приходится визуализировать возможную проблему.
Аноним 05/11/20 Чтв 19:01:04 #393 №1848879 
>>1783556
>дб господ
Удачи трудоустраиваться в "Рога и Копыта" за 40к - дрочить sql query день и ночь под очередное гавно, выкаченное еще 8 лет назад
Аноним 05/11/20 Чтв 19:05:09 #394 №1848888 
Как обновить сразу много значений в таблицей? Вот есть у меня список кортежей вида (name, age, department_id), команда UPDATE обновляет лишь одну строчку за раз, как мне вбросить весь список целиком чтобы обновлялись значения где name совпал?
Аноним 05/11/20 Чтв 19:20:29 #395 №1848907 
>>1848888
https://stackoverflow.com/questions/25674737/mysql-update-multiple-rows-with-different-values-in-one-query/25674827

???
Аноним 05/11/20 Чтв 19:44:39 #396 №1848932 
>>1848879
учишь к скл ещё питон
и ты теперь не скл-пердун, а вполне себе модный дата-инженер
Аноним 05/11/20 Чтв 20:23:29 #397 №1848966 
15930938840380.gif
>>1848879
Блядь, откуда вы такие берётесь. У меня один друг работает в повер биай, говорит что там скл джуны от 60к начинают, при этом приходят ебла, которые с нулевыми знаниями просят 200к, хотя он сам 200к получает, правда он в питоне разбирается ещё. Знакомая тян пришла на 40к в банк системным аналитиком вообще с нулевыми знаниями, не по знакомству. Через год повысили до 70к при том, что она хуи пинала.
Двач какая-то депрессивная зона всего самого хуевого.
Аноним 05/11/20 Чтв 21:14:39 #398 №1849002 
>>1848966
Просто ошибка выжившего, джуны которые на 100к вкатились(как я например) просто не будут об этом писать.
Аноним 05/11/20 Чтв 21:47:05 #399 №1849031 
>>1849002
Ну чёт я скорее поверю, что ошибка выжившего это 40к после года опыта работы. Я конструктором 67 на руки получаю после двух лет опыта.
Аноним 06/11/20 Птн 07:59:00 #400 №1849289 
Безымянный.png
>>1848726
Аноним 06/11/20 Птн 10:06:19 #401 №1849328 
>>1848907
>case when
Чего блять? А если у меня таких case 30 штук?
Аноним 06/11/20 Птн 12:23:30 #402 №1849469 
Мудрый анон, нужна твоя помощь.

Есть таблица с продажами, [1..x] магазинов, [1..y] наименований товаров, есть таблица с планами на следующий год.

Задача сводится к сведению таблицы в одну с показателями:
дата, магаз, товар, продажа, план/null, продажа прошлого года/null и несколько расчётов по последним трём колонкам.
Проблема заключается в очень долгом выполнении запроса; задача предполагает использовать UNION / UNION ALL для решения, но я даже примерно не могу представить, нахуя он тут нужен.
Первым пробовал вариант с join'ами каждого нужного поля -> время выполнения стремится к бесконечности.
Вторым пробовал WITH (собрать таблицу) и вытаскивать данные из неё. В таблице данные уже прошли через все процедурные фильтры (дата, магазин).
Аноним 06/11/20 Птн 15:58:55 #403 №1849642 
>>1848932
Есл ив питоне шаришь то как в sqlalchemy сделать массовое обновление таблицы из >>1848888
То есть ей передаем массив кортежей а она далее все делает как надо?
Аноним 06/11/20 Птн 19:20:38 #404 №1849865 
>>1849642
conn.execute( sqlalchemy.sql.text(<SQL>).bindparams(<параметры>) )
Аноним 06/11/20 Птн 20:32:38 #405 №1849934 
Даров почоны, вляпался тут в скул и пытаюсь его забодать. К результирующим толбцам бла бла AS thing можно ли обращаться далее по квери в теле (WHERE ...) и использовать в ORDER BY? Если да, то как?
Аноним 06/11/20 Птн 20:40:43 #406 №1849939 
>>1849934
Нет, или подзапрос.
Аноним 06/11/20 Птн 20:48:39 #407 №1849943 
>>1849939
Можно подробнее про подзапрос?
У меня код такого плана
SELECT ...
FROM ...
LEFT JOIN ...
ARRAY_REMOVE(ARRAY_AGG(DISTINCT LOWER(lists.name))) AS goods
WHERE ...
ORDER BY ...

Сортировка важнее, но главное, чтобы не пришлось передрючивать уже имеющийся запрос с ног на голову.
Аноним 06/11/20 Птн 20:51:43 #408 №1849946 
>>1849943
SELECT *
FROM (<твой запрос>) AS Z
WHERE ...
ORDER BY ...;

`AS Z` - это обязательно, хотя буква - на выбор
Аноним 06/11/20 Птн 20:59:08 #409 №1849953 
>>1849946
Вот это я и имел ввиду под "передрючиванием", не подходит. array_agg(...) в сортировку тоже никак не впихнуть?
Аноним 06/11/20 Птн 22:11:07 #410 №1850036 
>>1849946
>`AS Z` - это обязательно
От субд зависит
Аноним 06/11/20 Птн 23:52:49 #411 №1850118 
>>1849953
Короче можно, выходит ебано, но пользоваться можно.
сам себе ответил
Аноним 07/11/20 Суб 01:11:21 #412 №1850150 
1
Аноним 07/11/20 Суб 03:53:49 #413 №1850217 
>>1849934
Гугли CTE
Аноним 07/11/20 Суб 04:02:57 #414 №1850219 
>>1850217
Верно ли я понял, что CTE - это такой ловкий способ писать вложенные запросы? Напромер:

WITH Z AS (<мой запрос>)
SELECT *
FROM Z
WHERE ...
ORDER BY ...;
Аноним 07/11/20 Суб 05:41:45 #415 №1850233 
Помогите с кодом, существует ли такое?
>>1850231 →
Аноним 07/11/20 Суб 09:24:07 #416 №1850246 
>>1850219
да
Аноним 11/11/20 Срд 10:17:39 #417 №1853308 
Кто-нибудь использует DBeaver?
Подключаюсь к удаленной постгресовской бд на сервере, лог/пасс есть, подключение проходит, отображается вся база, таблицы, колонки, список ролей, диспетчер сессий. Но данные не отображаются вообще, т.к. ни один запрос (SELECT в т.ч.) не проходит, ошибка SQL Error [42501]: ERROR: permission denied. Как фиксить? Права на запросы есть
Аноним 11/11/20 Срд 12:16:30 #418 №1853384 
>>1853308
А написано что нет. Кому ты пиздишь?
Аноним 11/11/20 Срд 17:26:07 #419 №1853709 
Есть один скрипт для MS SQL. Хочу, что бы все поля таблиц в этом скрипте стали обёрнуты в квадратные скобки, по типу:
Было: Animal.Name
Должно стать: Animal.[Name]

Есть ли готовый скрипт/функция ms sql менеджера/регулярка которая сделает это? Вообще, что угодно подойдёт, пусть хоть сайт в интернете.
Аноним 12/11/20 Чтв 19:38:15 #420 №1854542 
Как вкатиться то? Нужно сделать простую бд
Аноним 13/11/20 Птн 12:58:01 #421 №1854988 
>>1853384
Всё верно, права потом пофиксил админ базы и всё заработало
Аноним 13/11/20 Птн 21:40:22 #422 №1855476 
Так чё с релокацией у ETLщиков?
Аноним 14/11/20 Суб 05:18:00 #423 №1855720 
>>1855476
Вроде зп у них норм, в чем вопрос не понял
Аноним 14/11/20 Суб 11:16:29 #424 №1855861 
>>1855720
Я смогу в условный Сингапур перекатиться?
Аноним 14/11/20 Суб 13:35:47 #425 №1855916 
Аноны, есть те, кто парсил строку в Sqlite3? В существующей таблице столбец с данными, разделенными запятой (comma-separated).
Есть ли простой и легкий способ разобрать эти данные по столбцам в другую таблицу ТОЛЬКО средствами SQL?
Аноним 14/11/20 Суб 15:26:53 #426 №1855972 
>>1855916
Если ты уверен, что в значениях нет символов кавычек, можешь попробовать превратить эту строку в JSON массив через замену и конкатинацию, и далее использовать табличную функцию json_each для её разбиения.
Аноним 14/11/20 Суб 16:36:02 #427 №1856026 
>>1855861
Ап вопросу.
Аноним 14/11/20 Суб 20:22:22 #428 №1856224 
>>1855972
ниасилил, сделал питоном.
Аноним 14/11/20 Суб 21:21:59 #429 №1856281 
Пытаюсь в пг распарсить xml в таблицу, но почему ловлю следующий экзепшен. Чо я делаю не так?

SQL Error [2200M]: ERROR: could not parse XML document
Подробности: line 1: Extra content at the end of the document
<node>1</node><node>2</node><node>3</node>
^

select *
from xmltable('$n' passing (('<node>'+replace('1;2;3',';','</node><node>')+'</node>')::xml)
columns "Value" int path 'node') vals
Аноним 14/11/20 Суб 23:30:23 #430 №1856351 
3.jpeg
1.jpeg
2.jpeg
Как эту хуйню решить? Я не понимаю, я менял всё, я меня соединение таблиц, сами таблицы местами, где я наебался? Я вообще не понимаю, как результат верный а решение неправильное?
https://www.sql-ex.ru/learn_exercises.php?LN=14
Аноним 15/11/20 Вск 08:32:16 #431 №1856517 
Screenshot20201115-082816.jpg
>>1856351
Вот решение, думай сам где проебался
"Ответ верный, а решение неверное" грубо говоря означает что твой текущий код подогнан к текущей базе данных
Аноним 16/11/20 Пнд 02:33:30 #432 №1857303 
>>1855861
Тоже бы про перекат послушал. Бамп.
Аноним 16/11/20 Пнд 11:43:16 #433 №1857515 
>>1855861
Знаю админа бд одного мощного - он в сингапур перекатился, потом выкатился назад. Грустно и скучно стало на чужбине.
Мне в гермашке как-то вакансию с релокейтом предагали, но по деньгам не интересно было.
По базам редко такие вакансии проскакивают. И это не етль - а администрирование + оптимизация/разработка, проектирование интеграций с бд и потоков данных обычно
Аноним 16/11/20 Пнд 16:52:47 #434 №1857750 
>>1857515
Админы вообще ещё живы, лол? Я думал они все передохли с приходом облаков. А в оптимизацию я тоже умею, в разработку - тем более.
Аноним 16/11/20 Пнд 17:24:07 #435 №1857780 
Плюс я бы с удовольствием бы послушал про зп местных.
Тут есть чистые базовики? Мб ДБАшники? Как должность называется? Какие задачи выполняете? Сколько уже работаете? Сколько получаете?
Аноним 16/11/20 Пнд 18:29:59 #436 №1857813 
image.png
Бля 10 лет назад ковырял я этот sql-ex и забросил потому что была такая залупа, что непонять об че разъебался. 10 лет прошло, а они с этим ни сделали ни ху я.
Аноним 16/11/20 Пнд 19:11:10 #437 №1857839 
>>1857813
Это спецом сделали, лалка.
Аноним 16/11/20 Пнд 20:12:11 #438 №1857901 
>>1857839
Я понимаю что спецом, но мне как понять в какую сторону копать? Получается мне надо придумывать какие-то дополнительные данные, которые своим запросом я не отсекаю. А могли бы намекнуть.
Аноним 17/11/20 Втр 00:55:41 #439 №1858063 
>>1857780
80к, етл
Аноним 17/11/20 Втр 08:38:59 #440 №1858217 
>>1858063
Чё так мало?
Аноним 17/11/20 Втр 09:35:08 #441 №1858235 
>>1858217
Хз, ну так получилось, не дс.
Аноним 17/11/20 Втр 09:47:35 #442 №1858241 
>>1858217
слыш, для не-дс нормально
этож не рякт или гейос
вакансий мало, да ещё злобный энтерпрайз небось
мимо-чел
Аноним 17/11/20 Втр 09:50:56 #443 №1858244 
>>1858241
А нахера вы опущи позволяете платить вам меньше кабанчику в мухосрани, когда он наоборот экономит на аренде офиса неебацца сколько, снимая его в мухосрани а не в дс, а работу вашу один хуй продаёт заграничным заказчикам, что кобаньствуя в москве, что кобаньствуя в мухосрани вашей?
Аноним 17/11/20 Втр 10:16:41 #444 №1858255 
>>1858235
>>1858241
>не дс
Ну, наверное, для мухсорани норм даже для реакта.
Аноним 18/11/20 Срд 02:29:35 #445 №1859165 
Есть табличка с полями user_id и timestamp.
Надо для каждого id оставить три последних записи, остальные удалить.
Аноним 18/11/20 Срд 04:07:15 #446 №1859185 
>>1859165
Row number по юзеру, с сортировкой по дате(только с desc не проебись)
Аноним 18/11/20 Срд 12:00:14 #447 №1859288 
>>1857750
Живее всех живых.
Какая разница, облако - не облако? Ну будет админ сидеть на строне облака а не на стороне клиента. Экспертиза все равно нужна.

Тех кто чисто внутри БД что-то делает - таких наверно нет. Обычно это работа/настройки и на стороне ОС и на стороне БД. Сильные админы обычно еще и в unix-ах хорошо шарят.

В ДС норм админ на энтерпрайзе может 200к и больше получать. Скорее даже не меньше 200.

Я 6 лет отработал чисто на базах, начинал с etl - потом ушел в более системную область. Когда ты работаешь etl-щиком то все твои задачи в основном сосредоточены внутри бд и ограничены самой бд - через 2 года мне стало скучно. Сейчас у меня много технических задач на уровне взаимодействия бд и ОС и другим ПО. Много времени может занимать разбор багов внутри бд, поиск обходных путей. Сложно выделить какой-то конкретный тип задач. Есть кластер с одной или несколькими бд к которому есть определенные требования и ты должен сделать так, что-бы он функционировал и удовлетворял этим требованиям и следить за этим - отсюда проистекают всевозможные задачи)

В должности никак не отражено, что я работаю именно с бд.
Года два-три назад зп перевалила за 200
Аноним 18/11/20 Срд 15:56:34 #448 №1859378 
Умоляю покажите как выглядит ссылка на стороне СУБД не могу разобраться
Нарисовал такую табличку вроде все правильно, но моя ссылка - primartkey одинаковая а одинкавых ключей небывает
Аноним 18/11/20 Срд 15:57:39 #449 №1859379 
>>1859378
Аноним 18/11/20 Срд 15:59:13 #450 №1859380 
>>1859378
Не отправляется с телефона в общем таблица такая
Ссылка Данные. Событие
1F. 20000. Размер
1F. 2. Уровень
Аноним 18/11/20 Срд 17:03:07 #451 №1859433 
>>1859288
>потом ушел в более системную область
Круть, а предыдущий опыт тебе как-то помогает в новых задачах или, может, помог при трудоустройстве?
Аноним 19/11/20 Чтв 00:45:14 #452 №1859824 
>>1781628 (OP)
Пизда рулю. Накосячил немного с SEQUENCE в Postgresql, захотел ее удалить чтоб заменить другой но во время DROP SEQUENCE ожидаемо выскочило:
cannot drop sequence operators_id_seq because other objects depend on it
Потому что эта последовательность уже приписана к колонке id в той таблице operators... Мне надо удалить ее и заменить другой, как это сделать, не стирая саму таблицу?
Аноним 19/11/20 Чтв 08:47:03 #453 №1859933 
>>1859824
postgre рулю
Аноним 19/11/20 Чтв 10:05:29 #454 №1859955 
image.png
Ребяты. Помогите, пара вопросов
Как сделать правильно связь многие ко многим между Route и Worker. По одной стороне через Team сделал, но вот через Company не пойму как лучше организовать. Потому что вроде выглядит все логично
И не могу еще к третьей нормальной форме это все привести, типа атрибут airplane_type в сущности Route или в сущности class атрибут number_of_seats и т.п.
Аноним 19/11/20 Чтв 22:17:25 #455 №1860484 
>>1857780
Чисто пишу запросики для отчетиков, зп 100к нск
Аноним 19/11/20 Чтв 22:48:59 #456 №1860515 
В шапке ничего нету, поэтому подскажите, пожалуйста, годных учебников по sql с нуля. На работке кликхаус запилили наконец-то, пора изучать.
Аноним 20/11/20 Птн 07:27:57 #457 №1860738 
>>1860515
В кликзхаусе вроде не чистый скуль, а сильно урезанный, все сложное типа джоинов и оконных функций ненужно.
Аноним 20/11/20 Птн 08:29:00 #458 №1860756 
Аноны, что бы глянуть/почитать по оптимизации view в Postgres 11?

Есть две таблицы(500мб и 30мб размерами), из 30мб таблицы сделана view_1.
Затем, через union all, соединяю две таблицы и view_1 в одну жирную view. Запросы к этой жирной view занимают довольно приличное время - десятки секунд. Собственно, отсюда и вопрос - в какую сторону смотреть и что делать для оптимизаци.
Аноним 20/11/20 Птн 09:25:09 #459 №1860777 
f20-cv.jpg
>>1860756
Посмотри ПЛАН.
K.O.
Аноним 20/11/20 Птн 09:53:06 #460 №1860789 
>>1859433
Направление я менял в рамках одного места работы, поэтому для трудоустройства наверно нет. О том помагает ли предыдущий опыт в текущих задачах - частично да, частично нет. Знание каких-то конкретных etl инструментов мне сейчас не требуется, но базовые какие-то принципы - да нужны
Аноним 20/11/20 Птн 17:07:17 #461 №1861176 
image.png
>>1860777
Вот такая хуйня получилась.
Сделал "SELECT *" т.к. подобный запрос в БД шлет tableau и выкачивает данные себе. Последний раз этот запрос занял 2 часа и потом просто отсоединилось, не закончив.
Аноним 20/11/20 Птн 18:50:58 #462 №1861293 
>>1861176
Ебать, добавил составные индексы и все летает. Охуенна.
Аноним 20/11/20 Птн 20:12:00 #463 №1861365 
>>1861176
>Сделал "SELECT *" т.к. подобный запрос в БД шлет tableau и выкачивает данные себе.
И не похуй ли, если они к себе Extract делают?
Аноним 20/11/20 Птн 21:15:43 #464 №1861435 
Screenshot2020-11-2018-53-52.png
>>1861365
Так он его не мог сделать,
Аноним 20/11/20 Птн 22:19:51 #465 №1861465 
>>1861435
так зачем ему делать, если они обычно просто данные линейно выкачивают?
Просто интересно. Они не хотят выкачивать?
Аноним 20/11/20 Птн 23:04:41 #466 №1861499 
>>1861465
Данные он выкачивает из таблицы, вместо таблицы у меня view. Соответственно когда он начинает "выкачивать данные" он обращается к этой вьюхе и там начинаются вычесления для того что бы вернуть в табло данные в виде готовой таблицы. И вот уже эти вычисления при построении вьюхи производились слишком долго.
Аноним 20/11/20 Птн 23:21:53 #467 №1861505 
Сап, аноны. Глупый вопрос. Если у меня есть подзапрос, использующий row_number(), мешает ли это оптимизации соединений этого подзапроса? Если его таблицы используются ещё несколько раз?
Аноним 20/11/20 Птн 23:23:31 #468 №1861508 
>>1861505
row_number() и потом фильтр по нему, точнее говоря. Нет, я не могу от него пока избавиться, я не могу выразить условие иначе.
Аноним 21/11/20 Суб 03:33:05 #469 №1861597 
>>1861505
По идее нет. Во всяком случае это на прядок быстрее подзапросов и групбааев используемых для решения таких же кейсов.
Аноним 22/11/20 Вск 07:02:22 #470 №1862504 
>>1849469
Пробуй через with с фильтрами, плюс можешь поддержать индексами. Декомпозируй и смотри за сколько выполняются куски, ищи самую медленную часть, смотри план запроса по ней.
Аноним 22/11/20 Вск 07:06:13 #471 №1862505 
>>1848888
Можно сделать генератор скрипта, по виду:

SELECT "UPDATE @TABLENAME SET" ZALUPA "WHERE" TABLENAME.ROW1
FROM @TABLENAME

Таким образом он тебе нарежет запросов, а ты просто запустишь батчем
Аноним 22/11/20 Вск 17:15:47 #472 №1862822 
>>1781628 (OP)
Посоветуйте годных базовых книг/курсов по базам данных.
Аноним 22/11/20 Вск 18:28:39 #473 №1862909 
>>1862822
Тут хорошие курсы есть
https://www.youtube.com/c/SQLDeveloperBI
Аноним 22/11/20 Вск 19:11:31 #474 №1862982 
>>1862909
Пасиб анон, заценим
Аноним 23/11/20 Пнд 06:48:54 #475 №1863438 
IMG20201123054617051.jpg
Короче не особо могу в бд, но курсач срал на это, потому прошу помочь. Есть такой запрос, но мне ещё надо получить сумму последнего столбца по полю orderID. Как это сделать?
Аноним 23/11/20 Пнд 07:35:07 #476 №1863442 
>>1863438
Все, я разобрался
Аноним 23/11/20 Пнд 20:47:13 #477 №1863999 
Почему потсгрес иногда начинает тупить? Вот есть таблица на которой я тестирую функции. В функции я эту таблицу в начале делаю тракейт, потом копирую туда данные из копии этой таблицы и потом уже выполняю всякую дичь. И вот в начале все работает ок, но потом скорость просто в ноль падает. Вакуум аналайз пробовал делать, даже растартил пострес. Толку нету.
Аноним 24/11/20 Втр 09:25:17 #478 №1864319 
>>1863999
Чел ну ты хуйню спрашиваешь, предлагаешь лечить по фотографии. Пиздуй смотри логи\нагрузку на систмеу\на бд\план запросов.
Аноним 24/11/20 Втр 19:07:09 #479 №1864729 
>>1864319
Логи чего именно смотреть?
Аноним 25/11/20 Срд 01:18:21 #480 №1864995 
Сап бдая. Мне бы справочник Станека по Sql серверу 2012 где откопать. Называется "Microsoft SQL Server 2012: Справочник администратора", Уильям Станек. Весь гугл перерыл, нашел только англоверсию, и ту неполную. Есть какие-то мутные сайты с регистрацией по мылу, но подтверждения нихуя не приходят, а на рутрекере только говно мамонта по sql server 2005 нашел. Вдруг есть тут у кого.
Аноним 25/11/20 Срд 01:23:19 #481 №1865002 
>>1864995
На орреле через триал либо тор.
Аноним 25/11/20 Срд 01:26:44 #482 №1865007 
>>1865002
> На орреле через триал
Попудробнее можно плз
Аноним 25/11/20 Срд 02:38:50 #483 №1865049 
Анон, а что за конструкция вида select from (select from...)? Дополнительно профильтровать селект в скобках? Разве для этого не having используется?
Аноним 25/11/20 Срд 02:43:57 #484 №1865053 
>>1865049
Это подзапрос. Не всё возможно сделать через having, и не всё удобно через него делать.
Аноним 25/11/20 Срд 05:21:06 #485 №1865099 
>>1865007
Идешь на сайт orelly, регаешся тебе дают триал на недели с доступом ко всем книгам. Через неделю регаешь новую почту. Там даже подтверждение не нужно, просто на несуществующую можно регать

>>1865049
Гугли табличные выражения, делает тоже самое но в отдельной конструкции.
Аноним 25/11/20 Срд 05:31:15 #486 №1865102 
>>1865099
> Идешь на сайт orelly, регаешся тебе дают триал на недели с доступом ко всем книгам. Через неделю регаешь новую почту. Там даже подтверждение не нужно, просто на несуществующую можно регать
Спасибо. Я смотрю там все на ингрише, там локализованные на русском версии книг есть вообще? Просто толку мне пердолиться с триалами если там только версия на английском, которая у меня и так есть
Аноним 25/11/20 Срд 09:08:26 #487 №1865143 
>>1865049
Как ты будешь фильтровать оконные или аналитические ф-ци не в терадате?
Аноним 25/11/20 Срд 11:38:48 #488 №1865226 
>>1865099
А им разве кредитка не нужна там?
Я просто хотел еще и на Packpub подписаться. Есть хорошие книженции там по не очень популярным технологиям
Аноним 25/11/20 Срд 16:53:38 #489 №1865496 
>>1865102
А тебе на сверхдержавном, тогда мимо
>>1865226
Ненужна
Аноним 25/11/20 Срд 23:00:08 #490 №1865742 
Можно ли в эластике каким-то хитрым запросом вытащить всю иерархию документов за один вопрос, при условии, что у каждого документа есть ссылки (айди) на своих родителей и детей?
Аноним 27/11/20 Птн 09:16:24 #491 №1866689 
>Решаем всем тредом лабы для заплутавших студентов и задачки с sql-ex для тех, у кого завтра ПЕРВОЕ собеседование
Ребята, это чисто я, ток собеседование на стажера дата-аналитика в понедельник...
sql будет не мейн темой, но сказали, шо надо уметь делать простые запросы и знать базовую теорию насколько базовую, не сказали
Подскажите, что лучше: порешать литкодовские изи или sql-ex задачки? (времени на то и другое нет)
И ещё бы где-то найти инфу в супер сжатом виде по внутреннему устройству бд, индексам, транкзакциям, уровням изоляций итд
Аноним 27/11/20 Птн 11:01:27 #492 №1866719 
>>1781628 (OP)
Сейчас читаю книгу lerning sql. Там встретился такой пример

SELECT groups.name, COUNT(*) num_customers
FROM
(SELECT SUM(a.avail_balance) cust_balance
FROM account a INNER JOIN product p
ON a.product_cd = p.product_cd
WHERE p.product_type_cd = 'ACCOUNT'
GROUP BY a.cust_id) cust_rollup
INNER JOIN
(SELECT 'Small Fry' name, 0 low_limit, 4999.99 high_limit
UNION ALL
SELECT 'Average Joes' name, 5000 low_limit,
9999.99 high_limit
UNION ALL
SELECT 'Heavy Hitters' name, 10000 low_limit,
9999999.99 high_limit) groups
ON cust_rollup.cust_balance
BETWEEN groups.low_limit AND groups.high_limit
GROUP BY groups.name;

отдельно подзапросы выполняются все ок. С синтаксисом тоже ок. Даже если в глаза не ебаться и прочитать запрос то все в порядке.

Но мускуль ругается на
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'groups
on cust_rollup.cust_balance between groups.low_limit and groups.hig' at line 14

Я чет понять не могу где там ошибка
Аноним 28/11/20 Суб 16:08:23 #493 №1867743 
Анон, мне на собесе дали такую задачу:

> Есть запрос
> SELECT * FROM employee WHERE sex = 'm' AND salary > 300 AND age = 20
> Нужно сделать индекс КОНКРЕТНО БУКВАЛЬНО ПОД ЭТОТ запрос, чтобы именно такой запрос был супер-быстрым

Короче, как я понял, здесь фишка в том что нужен определенный составной индекс.
Я ответил что типа сделаем index(salary, sex) и отдельно index(age). Я не знаю почему я решил age выносить отдельно. И я до сих пор не догоняю, как правильно. У нас же типа btree, в составном индексе будет сортировка по вложенным полям... блять, тут есть вообще разница в порядке полей? И вообще смысл в составном индексе?
Аноним 28/11/20 Суб 16:23:37 #494 №1867747 
>>1867743
Да, еще следом был вопрос "а если хотим сортировать по created_at".

Я вот сейчас подумал, что мы можем сделать partial-индекс index(id) WHERE по этому условию. А для сортировки добавить отдельный index(created_at). Не?
Аноним 28/11/20 Суб 21:07:12 #495 №1867898 
image.png
Гайс смотрите есть таблица(сформирована типо из банковских проводок), надо вывести промежутки дат, когда сумма не нулевая. Я смотрел подобную задачу решали оконной функцией где херачили группы и потом выбирали минимальную и максимальную, но я не расчехляю как её сюда можно применить. Хотя бы намекните как это реализовать можно.
Аноним 28/11/20 Суб 21:57:47 #496 №1867967 
>>1867898
Гугли Gaps and Islands SQL
Аноним 29/11/20 Вск 19:18:35 #497 №1868722 
>>1867967
Благодарю.
Аноним 30/11/20 Пнд 10:57:34 #498 №1869137 
>>1781628 (OP)
Я не могу понять, так left outer join и left join это одно и то же или разное? Почти везде пишут, что это одно и то же, но тогда к чему испльзовать именно конструкцию со словом outer?
Аноним 30/11/20 Пнд 11:01:11 #499 №1869140 
>>1869137
Потому что в SQL есть больше одного способа сделать что угодно. Те же AS и IS.
Аноним 30/11/20 Пнд 13:26:53 #500 №1869187 
>>1869137
Первый вариант полная форма, но если мы используем left, сразу становится понятно что это outer, т.к. направленных inner-ов не бывает. Можно сравнить с AS, писать не обязательно и с пробелом работает. Использование outer удобно на этапе обучения.
Аноним 30/11/20 Пнд 15:39:40 #501 №1869253 
изображение.png
>>1869187
>AS
Сравнить с AS твоей мамки
Аноним 30/11/20 Пнд 22:07:21 #502 №1869598 
16013123015890.png
Когда будет перекот, сделойте шапкю и F.A.Q
Аноним 30/11/20 Пнд 22:35:47 #503 №1869617 

ПЕРЕКАТ >>1869616 (OP)
ПЕРЕКАТ >>1869616 (OP)
ПЕРЕКАТ >>1869616 (OP)
Аноним 24/12/20 Чтв 10:29:07 #504 №1889017 
Поясните. Последовательность операций не меняющих содержимое базы считается за ТРАНЗАКЦИЮ?
Аноним 15/01/21 Птн 22:31:08 #505 №1911251 
>>1856351
Вероятно, не актуально, но решения некоторых задач на sql-ex можно найти в гугле :3
Аноним 02/02/21 Втр 01:27:17 #506 №1928514 
Сап, аноны. Есть таблица с десятками миллионами записей и она постоянно растет. У каждой записи есть уникальный ключ (то есть уже проиндексирована). Задача: прочитать записи в таблице по уникальномым ключам. Проблема: с увеличением базы - большое время ожидания. Я вижу выход только в репликации и шардинге базы. Кэширование не поможет так как постоянно выбираются разные данные, соответственно полезно в кеш попадет мало. Что можете посоветовать?
Аноним 12/02/21 Птн 16:15:51 #507 №1938672 
может кто помочь в связях между таблицами разобраться? и минимально объяснить
Аноним 13/02/21 Суб 22:45:01 #508 №1940192 
>>1803670
Триггер выполнится единожды для всего запроса, весь набор будет лежать в inserted
Аноним 08/04/21 Чтв 22:58:27 #509 №1990612 
Clip2net210408225526.png
Анон, что с меня она хочет? Создал 2 пользоватиля через консоль, не через команду createuser. Теперь не могу удалить, сменить роли и тп. Вот пример удаление других пользователей.
comments powered by Disqus

Отзывы и предложения