В одном чатике возник такой вопрос. Спектр ответов был от “знать оконки” до “писать трехэтажные запросы”.
Давай разбираться 🧐
В русскоязычном комьюнити очень сильно смещён фокус на хард скилы. Но что такое SQL по сути? Это прикладной навык, инструмент, с помощью которого ты решаешь часть задачи. Точнее — всего лишь добываешь данные для анализа.
Разгоним музыкальную метафору. Вот есть барабанщик. Его задача играть ритм в композиции. Для этого он использует палочки, которыми стучит по сету. Эти палочки и есть его SQL. Он может понять как их держать и как извлекать звук, а потом перейти, собственно, к музыке. А может годами оттачивать трюки, подкидывать их, крутить и т.д., к музыке так и не приступив. И когда он приходит в группу с таким крутым скиллом — его не берут. Потому что группе надо ритм держать, а не палочками выпендриваться.
В работе тебе никто не говорит: “достань мне из базы вот такие данные по таким колонкам и чтобы запрос был пожирнее”.
Говорят: “мы выкатили фичу, и она, кажется, не работает”.
Твоя задача намного, намного глубже — нужно определиться с критериями, что вообще значит “не работает”? А как понять что работает? Есть ли у неё перспектива? Надо ли переделывать? Тут намного больше тонкостей в аналитическом мышлении.
Все эти вопросы нужно переводить на язык данных. “Посчитаем, значит вот это, это и вон то” — можешь достать эти данные из базы, не потратив на это неделю? Поздравляю, у тебя нормальный рабочий уровень SQL 🥳
Да, некоторые вещи используются чаще — например подзапросы или CTE, джоины и оконки. Некоторые реже — какой-нибудь локальный мэппинг, lead/lag и т.д. Но это ты со временем сам обнаружишь.
Все функции наизусть никто не знает, и это нормально. Да что там знать, большей частью функций из документации ты никогда не воспользуешься даже. А если вдруг и понадобится что-то хитрое — есть гугл.
