id
1
2
3
4
5
Null
Null
Запрос:
Count(id)
Count (1)
Count('id')
Count(*)
Count(null)
В документации Postgresql:
count(*) -> bigint
number of input rows
count(expression) -> bigint
number of input rows for which the value of expression is not null
Если же мы указали любое выражение в count, то проходясь по каждой строке проверяется является ли это выражение null'ом.
То есть проходясь по 7 строкам, 7 раз 1 и 'id' являются не null, и 0 раз null является не null.
#de_обсуждение
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10 4⚡1🤬1
Возьмем для примера эти две таблицы:
id id
1 1
1 1
1 1
2 6
3 7
4 9
Смотря на эту картинку, можно ошибочно прийти к выводу, что при LEFT JOIN в результирующей таблице будет 6 строк, однако их будет 12.
Разобраться тут нужно с тем, как на самом деле работает INNER JOIN.
Нам необходимо сравнить каждый элемент первой таблицы с элементами второй и, при их равенстве, вывести эту пару:
for id1 in table1:
for id2 in table2:
if id1 == id2:
print(id1, id2)
Понимание остальных JOIN'ов строится на понимании INNER:
LEFT JOIN = результат INNER + оставшиеся id в левой таблице
RIGHT JOIN = результат INNER + оставшиеся id в правой таблице
FULL JOIN = результат INNER + оставшиеся id в левой таблице + оставшиеся id в правой таблице
CROSS JOIN = все пары, при CROSS JOIN мы не проверяем равны ли id
#de_обсуждение
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🔥2 1
select distinct name, row_number() over(order by id)
from table
select name, row_number() over(order by id)
from table
Ответ :
Порядок выполнения команд в SQL:
FROM, including JOINs
WHERE
GROUP BY
HAVING
WINDOW functions
SELECT
DISTINCT
UNION
ORDER BY
LIMIT and OFFSET
#de_обсуждение
Please open Telegram to view this post
VIEW IN TELEGRAM
Сегодня мне рассказали, что мой знакомой с 0 месяцев опыта устроился разрабом на Senior'ский грейд, накрутив опыт в резюме.
Таски на Senior'ской позиции очевидно больше софтовые, найм Senior'ов дорогой, поэтому вполне могу представить, что задержаться на позиции он может надолго.
Представляю как прихожу к такому Senior'у за код-ревью.
Как вы относитесь к накрутке опыта в резюме?
Таски на Senior'ской позиции очевидно больше софтовые, найм Senior'ов дорогой, поэтому вполне могу представить, что задержаться на позиции он может надолго.
Представляю как прихожу к такому Senior'у за код-ревью.
Как вы относитесь к накрутке опыта в резюме?
😭6😁2
Что такое Data Lake?
Что такое DWH?
Расскажите про слои DWH?
Чем отличается моделирование по Кимбаллу и по Инмону?
Звезда и снежинка это Кимбалл или Инмон?
Чем звезда отличается от снежинки?
Чем отличаются факт таблицы и таблицы измерений?
Расскажите про Data Vault
Расскажите про Anchor Modeling
Зачем нужна нормализация?
Какие вида JOIN'ов знаете?
Расскажите про SELF JOIN.
Что знаете про агрегационные функции?
Можно ли использовать несколько агрегационных функций в select?
Можно ли использовать GROUP BY без агрегационной функции?
Как убрать дубликаты? То есть сделать так, чтобы таблица осталась без дубликатов, а не запрос вывел данные таблицы без дубликатов?
Что такое первичный ключ? Что такое foreign key? В каком разрезе формируют ключ? Что он должен в себе нести?
Что такое суррогатный ключ? Как его построить?
Как RANK() работает с NULL?
Расскажите про способы оптимизации SQL зпросов
#de_собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤10🔥4
вдруг вы забыли классику
https://www.youtube.com/watch?v=n3Q_FIJ6s-s&list=PLRDzFCPr95fJE6DJBO2kODyHNEygl02ul
https://www.youtube.com/watch?v=n3Q_FIJ6s-s&list=PLRDzFCPr95fJE6DJBO2kODyHNEygl02ul
YouTube
"Чтобы сделать матрёшку" (Рекурсия)
Объяснение рекурсии без музыки (на языке Си): https://youtu.be/NOaSY5pJmyc
Объяснение рекурсии без музыки (на языке Python): https://youtu.be/0Bc8zLURY-c?t=45
Спонсировать производство алгоритмического рэпа: https://www.patreon.com/tkhirianov или https:…
Объяснение рекурсии без музыки (на языке Python): https://youtu.be/0Bc8zLURY-c?t=45
Спонсировать производство алгоритмического рэпа: https://www.patreon.com/tkhirianov или https:…
🏆2
https://www.hse.ru/ma/data-engineering/
Начали появляться полноценные магистратуры по инженерингу данных
Начали появляться полноценные магистратуры по инженерингу данных
www.hse.ru
Онлайн-магистратура «Инженерия данных»
Онлайн-магистратура для тех, кто хочет работать с большими данными: анализировать, систематизировать и разрабатывать решения для бизнеса.
😁1
друзья, подавайте!
не упустите возможность)
https://career.avito.com/weekendoffer/2024/data/?utm_source=7&utm_medium=1&utm_campaign=2
не упустите возможность)
https://career.avito.com/weekendoffer/2024/data/?utm_source=7&utm_medium=1&utm_campaign=2
Avito
Data Weekend Offer от Авито
Получите оффер за выходные и развивайте масштабные продукты в командах Авито
❤4🔥3🏆1
YouTube последнее время частенько рекомендует мне подкасты с hr. И во всех обсуждают следующие два тезиса: кадровый голод и поколение z.
Первое буквально про нехватку высококвалифицированных низкооплачиваемых кадров. Кадровый голод и +-5 этапов отбора не могут существовать в одной плоскости.
Смешнее второй тезис. Обсуждают, что молодые сотрудники требуют достойной зарплаты, справедливой оценки труда, похвалы.
То есть по такой логике миллениалам комфортно работать в токсичной среде с несправедливым начальством?
Искренне верю, что мы никак не отличаемся от предыдущих поколений, изменились только условия, в которых мы существуем.
Миллениалами можно было управлять кнутом, потому что их удерживала часто сбыточная перспектива попасть в средний класс.
Большинству моего поколения атрибуты среднего класса не светят. Да и работа у белых воротничков как по мне стала сложнее, требует больше квалификаций и более узких знаний.
Мы зарабатываем не на квартиры, а на айс латте на кокосовом, отношение к работе оттого соответствующее.
Первое буквально про нехватку высококвалифицированных низкооплачиваемых кадров. Кадровый голод и +-5 этапов отбора не могут существовать в одной плоскости.
Смешнее второй тезис. Обсуждают, что молодые сотрудники требуют достойной зарплаты, справедливой оценки труда, похвалы.
То есть по такой логике миллениалам комфортно работать в токсичной среде с несправедливым начальством?
Искренне верю, что мы никак не отличаемся от предыдущих поколений, изменились только условия, в которых мы существуем.
Миллениалами можно было управлять кнутом, потому что их удерживала часто сбыточная перспектива попасть в средний класс.
Большинству моего поколения атрибуты среднего класса не светят. Да и работа у белых воротничков как по мне стала сложнее, требует больше квалификаций и более узких знаний.
Мы зарабатываем не на квартиры, а на айс латте на кокосовом, отношение к работе оттого соответствующее.
❤19
Сегодня мне кажется, что этот канал вообще никто не читает, а сердечки мне ставят только мои друзья
Завтра я сижу на собесе с человеком, подписанным на этот канал, и отвечаю на вопросы из моих постов
Завтра я сижу на собесе с человеком, подписанным на этот канал, и отвечаю на вопросы из моих постов
1❤32😁7👍4🍓1
Установила челу убунту - в резюме отмечу как опыт девопса
😁12❤10 8
Мое незнание этой темы привело к 6-месячному куллдауну в Авито
Чтобы у вас не было также, давайте разберем ее подробнее.
Принцип работы уже понятен из названия: каждый элемент внешнего цикла сравнивается с каждым элементом внутреннего.
Алгоритмическая сложность - O(n**2)
For Each value in pile1
For Each value in pile2
If pile1.value = pile2.value
Return pile1.value, pile2.value
Для этого алгоритма элементы уже должны быть отсортированы. Тут мы проходимся двумя указателями по элементам и сравниваем их. В конце проходим по оставшимся элементам.
Если не считать сортировку, алгоритмическая сложность - O(n).
get first row R1 from input 1
get first row R2 from input 2
while not at the end of either input
begin
if R1 joins with R2
begin
get next row R2 from input 2
return (R1, R2)
end
else if R1 < R2
get next row R1 from input 1
else
get next row R2 from input 2
end
Вычисляем хэш для каждого элемента левой таблицы, затем вычисляем хэш у элементов правой таблицы и проверяем его наличие в левой.
Алгоритмическая сложность - O(n).
// Build phase
FOR each row in BuildTable DO
Compute hash value for the join key
Insert row into HashTable based on hash value
END FOR
// Probe phase
FOR each row in ProbeTable DO
Compute hash value for the join key
IF hash value exists in HashTable THEN
Retrieve matching rows from HashTable
FOR each matching row DO
Combine rows from ProbeTable and BuildTable
Add the combined row to the result set
END FOR
END IF
END FOR
Рекомендую просмотреть псевдокод и реализовать все на своем языке
#de_обсуждение
Please open Telegram to view this post
VIEW IN TELEGRAM
❤29🏆4👍2🔥1
Во-первых, осень действительно лучшее время для поиска работы.
Во-вторых, мне нужны бусты☹️
У меня заволялись телеги hr'ок из МТС, Билайна, Мегафона, Яндекс Маркета и Сбера. Отправлю их забустившим канал.✨
Забустить тут⬇️
https://news.1rj.ru/str/boost/data_interviews
📍 Написать hr'у напрямую всегда лучше отклика на хх, так как личное сообщение гарантирует просмотр резюме.
Также если хотите рефералку в Авито, отпишитесь в комментариях и я свяжусь с вами❤️
Во-вторых, мне нужны бусты
У меня заволялись телеги hr'ок из МТС, Билайна, Мегафона, Яндекс Маркета и Сбера. Отправлю их забустившим канал.
Забустить тут
https://news.1rj.ru/str/boost/data_interviews
Также если хотите рефералку в Авито, отпишитесь в комментариях и я свяжусь с вами
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🍓4🔥3👍2