Упражнения по SQL
Для авиакомпаний, самолеты которой выполнили хотя бы один рейс, вычислить с точностью до двух десятичных знаков средние величины времени нахождения самолетов в воздухе (в минутах). Также рассчитать указанные характеристики по всем летавшим самолетам (использовать слово ‘TOTAL’).
Для авиакомпаний, самолеты которой выполнили хотя бы один рейс, вычислить с точностью до двух десятичных знаков средние величины времени нахождения самолетов в воздухе (в минутах). Также рассчитать указанные характеристики по всем летавшим самолетам (использовать слово ‘TOTAL’).
Вывод: компания, среднее арифметическое, среднее геометрическое, среднее квадратичное, среднее гармоническое.
With t as
(Select ID_comp, convert(numeric(18,2), Case when time_in > = time_out
Then datediff(minute, time_out, time_in)
Else datediff(minute, time_out, dateadd(day, 1, time_in))
End) as trmin
From (Select trip_noFrom Pass_in_trip
Group by trip_no, [date]) pt join Trip t on pt. trip_no = t.trip_no
)Select Coalesce(c.name, ‘TOTAL’), A_mean, G_mean, Q_mean, H_mean
From (
Select Id_comp ,
convert(numeric(18,2), avg(trmin)) A_mean,
convert(numeric(18,2), Exp(avg(Log(trmin)))) G_mean,
convert(numeric(18,2), sqrt(avg(trmin*trmin))) Q_mean,
convert(numeric(18,2), count(*)/sum(1/trmin)) H_mean
From t
Group by ID_comp
with cube) as a left join Company c on a.ID_comp = c.ID_comp
Сгруппировать все окраски по дням, месяцам и годам. Идентификатор каждой группы должен иметь вид «yyyy» для года, «yyyy-mm» для месяца и «yyyy-mm-dd» для дня.
Сгруппировать все окраски по дням, месяцам и годам. Идентификатор каждой группы должен иметь вид «yyyy» для года, «yyyy-mm» для месяца и «yyyy-mm-dd» для дня.
Вывести только те группы, в которых количество различных моментов времени (b_datetime), когда выполнялась окраска, более 10.
select to_char(trunc(b.b_datetime,’year’),’yyyy’) grp, sum(b.b_vol) qnt
from utB b
group by to_char(trunc(b.b_datetime,’year’),’yyyy’)
having count(distinct b.b_datetime) > 10
union
select to_char(trunc(b.b_datetime,’MM’),’yyyy-mm’) grp, sum(b.b_vol) qnt
from utB b
group by to_char(trunc(b.b_datetime,’MM’),’yyyy-mm’)
having count(distinct b.b_datetime) > 10
union
select to_char(trunc(b.b_datetime,’dd’),’yyyy-mm-dd’) grp, sum(b.b_vol) qnt
from utB b
group by to_char(trunc(b.b_datetime,’dd’),’yyyy-mm-dd’)
having count(distinct b.b_datetime) > 10
Выборы Директора музея ПФАН проводятся только в високосный год, в первый вторник апреля после первого понедельника апреля.
Выборы Директора музея ПФАН проводятся только в високосный год, в первый вторник апреля после первого понедельника апреля.
Для каждой даты из таблицы Battles определить дату ближайших (после этой даты) выборов Директора музея ПФАН.
Вывод: сражение, дата сражения, дата выборов. Даты выводить в формате «yyyy-mm-dd».
Select name, convert(char(10),date,120) as battle_dt
,convert(char(10),MIN(Dateadd(dd,1,dt)),120) as election_dt
From
(Select name, date, Dateadd(yy,p,Dateadd(dd,n,Dateadd(mm,3,dateadd(yy,datediff(yy,0,date),0)))) as dt
From Battles
,(values(0),(1),(2),(3),(4),(5),(6),(7),(8)) T(p)
,(values(0),(1),(2),(3),(4),(5),(6)) W(n) ) X
Where date<=dt and (Year(dt)%4=0 and Year(dt)%100> 0 or Year(dt)%400=0)
and DATEPART(dw,dt)=DATEPART(dw,’20140106′)
GROUP BY name, date
Задание: 117 (Serge I: 2013-11-29) По таблице Classes для каждой страны найти максимальное значение среди трех выражений: numguns*5000, bore*3000, displacement.
Вывод в три столбца:
— страна;
— максимальное значение;
— слово `numguns` — если максимум достигается для numguns*5000, слово `bore` — если максимум достигается для bore*3000, слово `displacement` — если максимум достигается для displacement.
Замечание. Если максимум достигается для нескольких выражений, выводить каждое из них отдельной строкой.
Select top 1 with ties country, x, n
from classes
cross apply(values(numguns*5000,’numguns’)
,(bore*3000,’bore’)
,(displacement,’displacement’))V(x,n)group by country, x, n
order by rank()over(partition by country order by x desc)
Считая, что каждая окраска длится ровно секунду, определить непрерывные интервалы времени с длительностью более 1 секунды из таблицы utB.
Считая, что каждая окраска длится ровно секунду, определить непрерывные интервалы времени с длительностью более 1 секунды из таблицы utB.
Вывод: дата первой окраски в интервале, дата последней окраски в интервале.
SELECT MIN(D)start, MAX(D)finish
FROM
(
SELECT D, SUM(F)OVER(ORDER BY D ROWS UNBOUNDED PRECEDING)F
FROM
(
SELECT B_DATETIME D, IIF(IsNull(DATEDIFF(second, LAG(B_DATETIME)OVER(ORDER BY B_DATETIME), B_DATETIME),0)<=1,0,1)F
FROM utB
)q
)q
GROUP BY F
HAVING DATEDIFF(second,MIN(D),MAX(D))> 0
Рассмотрим равнобочные трапеции, в каждую из которых можно вписать касающуюся всех сторон окружность.
Рассмотрим равнобочные трапеции, в каждую из которых можно вписать касающуюся всех сторон окружность. Кроме того, каждая сторона имеет целочисленную длину из множества значений b_vol.
Вывести результат в 4 колонки: Up, Down, Side, Rad. Здесь Up — меньшее основание, Down — большее основание, Side — длины боковых сторон, Rad – радиус вписанной окружности (с 2-мя знаками после запятой).
select distinct Up=u.b_vol, Down=d.b_vol, Side=s.b_vol,
Rad=cast(POWER((POWER(s.b_vol,2)-POWER((1.*d.b_vol-1.*u.b_vol)/2,2)),1./2.)/2 as dec(15,2))
from utB u, utB d, utB s
where u.b_vol<d.b_vol and 1.*u.b_vol+1.*d.b_vol=2.*s.b_vol
Определить имена разных пассажиров, которым чаще других доводилось лететь на одном и том же месте.
Вывод: имя и количество полетов на одном и том же месте.
WITH b AS
(SELECT ID_psg, COUNT(*) as cnt FROM Pass_In_Trip GROUP BY ID_psg, place),
b1 AS
(SELECT DISTINCT ID_psg, cnt FROM b WHERE cnt =(SELECT MAX(cnt) FROM b))
SELECT name, cnt FROM b1 JOIN Passenger p ON (b1. ID_psg = p.ID_psg)
Сколько каждой краски понадобится, чтобы докрасить все Не белые квадраты до белого цвета.
Вывод: количество каждой краски в порядке (R,G,B)
SELECT sum(255-ISNULL ([R],0) ) R , sum(255-isnull([G],0)) G, sum(255-isnull([B],0)) B
FROM
(
/*merging all tables to find paint filling and color for all squares*/
select ISNULL(B_Q_ID, Q_ID) ID, V_COLOR, B_VOL Vol from
utB RIGHT JOIN utQ on B_Q_ID=Q_ID
LEFT JOIN utV on B_V_ID=V_ID
) as SourceT
PIVOT
(
/*rotating table and calculating each paint volume for each square*/
SUM(Vol) For V_COLOR IN ([R], [G], [B])
) Pvt
/*excluding white squares*/
where ISNULL ([R],0) + isnull([G],0) + isnull([B],0) <765
Какое максимальное количество черных квадратов можно было бы окрасить в белый цвет оставшейся краской
select min(Qty) from (select SUM(RemainPaint)/255 Qty FROM (select V_COLOR, V_ID,
CASE
WHEN SUM(B_VOL) IS NULL
THEN 255
ELSE 255-SUM(B_VOL)
END RemainPaint
from utB right join utV on B_V_ID = V_ID
group by V_COLOR, V_ID
) R
group by V_COLOR
) Q
Найти НЕ белые и НЕ черные квадраты, которые окрашены разными цветами в пропорции 1:1:1.
Найти НЕ белые и НЕ черные квадраты, которые окрашены разными цветами в пропорции 1:1:1. Вывод: имя квадрата, количество краски одного цвета
select B_Q_ID, sum(vol)/3 vol
from
(select B_Q_ID, V_COLOR, sum(B_VOL) vol
from utB, utV
where B_V_ID=V_ID
group by B_Q_ID, V_COLOR
) z
group by B_Q_ID
having count(v_color)=3
and sum(vol)<765
and sum(vol) % 3=0
Подписаться на: Сообщения (Atom)
10 Лучших Платформ для тренировки навыков
Научиться тому, как писать эффективный и качественный SQL-код может быть сложным процессом, особенно, если вы ограничены своим бюджетом. Кроме того, поиск достойных источников, которые действительно могут помочь практиковать SQL онлайн тоже может достаточно сложным, так как чаще всего они либо очень простые, либо посвящены одному аспекту. Это означает, что изучение базовых концептов SQL-программирования может быть простым, но получение практического опыта стать настоящим испытанием.
Именно для решения этой проблемы, мы решили составить список самых популярных источников для практики SQL. Мы рассмотрели несколько различных типов источников, включая те, которые помогут вам изучить SQL онлайн даже будучи новичком. Поэтому, если вы в данный момент пытаетесь освоить SQL, но столкнулись с проблемами в процессе обучения, то для вас тоже найдутся полезные материалы.
Запомните, изучение SQL это не то, что вы можете сделать за один день. Вам нужно посвятить этому часы изучения, прежде чем ваших знаний будет хватать для написания простых запросов. Учитывая сказанное, давайте приступим к рассмотрению 10 источников для практики SQL:
Содержание
- 1. Интерактивный Курс BitDegree
- 2. Испытания Программирования HackerRank
- 3. Справочное Руководство По SQL От BitDegree
- 4. SQL Fiddle
- 5. Блоги
- 6. Сайт SQL Test
- 7. Форумы
- 8. Schemaverse
- 9. Видео На YouTube
- 10. Reddit
- 11. Заключение
1.
Интерактивный Курс BitDegreeЕсли вы новичок, то лучшим вариантом станет практика решения какой-либо SQL задачи с помощью интерактивного онлайн-курса. Интерактивные курсы полезны сразу по нескольким причинам, так как позволяют как изучать что-то новое, так и практиковать свои существующие навыки написания кода. Давайте рассмотрим некоторые преимущества данного способа обучения и практики SQL онлайн:
- Интерактивные курс позволяют вам практиковать написание кода прямо в вашем браузере. Это делает процесс обучения гораздо более простым и наглядным!
- Большая часть интерактивных курсов предлагает мгновенную обратную связь с пользователями. Это означает, что вы будете узнавать об ошибках в вашем коде незамедлительно, без необходимости настраивать для этого отдельный SQL эмулятор для тестирования.
- Если вы правильно подойдёте к выбору интерактивного курса, то процесс обучения станет более интересным и увлекательным. Это именно то, что должно помочь вам завершить обучение до конца.
Если вы как раз думали о том, чтобы начать изучать SQL или хотите практики SQL в режиме онлайн, то для вас есть один курс. Перейдите на страницу Интерактивного курса по SQL и поработайте с упражнениями по основам этого языка. Этот курс начинается с самых базовых концептов, поэтому вы можете пропустить начальные разделы курса. Однако убедитесь в том, что вы действительно уже знаете рассматриваемые концепты и синтаксис.
Самые Полюбившиеся Статьи
Ищете более подробную информацию по какой-либо связанной теме? Мы собрали похожие статьи специально, чтобы вы провели время с пользой. Взгляните!
2. Испытания Программирования HackerRank
Другой отличной возможностью для практики является решение какой-либо SQL задачи или испытания на сайте HackerRank. Задачи на этом ресурсе тщательно подобраны и отсортированы по сложности и категории. Вам нужно лишь перейти на сайт, найти раздел с SQL испытаниями и начать работать над ними!
В большинстве случаев вам будут даваться чёткие инструкции. Эти инструкции будут содержать информацию о том, что должна делать создаваемая вами программа, какой код необходимо использовать и т.д. Уделите должное количество времени на изучение всех нюансов, так как на решение одной SQL задачи может приходиться несколько способов решения.
Когда вы работаете с испытаниями или задачами по программированию, то хорошей идеей будет иметь под рукой справочное руководство. Если мы говорим про SQL, то стоит уделить внимание справочному руководству BitDegree – которое является следующим источником в нашем списке.
3. Справочное Руководство По SQL От BitDegree
Если вы серьёзно настроены на изучение того, как писать качественный SQL-код, то вам нужно убедиться в том, что вы используете самые лучшие практики написания кода. Самым лучшим вариантом для этого является изучение текстовых SQL уроков, размещённых в надёжных онлайн источниках. Основным преимуществом подобных справочных руководств,по сравнению с теми же интерактивными курсами, является их обширность и детальность. К примеру, данное справочное руководство по SQL содержит обширную базу различных концептов и синтаксиса.
Если вы будете использовать его в качестве дополнительного инструмента для изучения, то это станет отличным способом освоить SQL онлайн. Не будет преувеличением сказать, что этот источник является одним из самых лучших и детальных в мире.
В этом руководстве вы сможете найти много чего интересного. Следует начать с самой первой страницы и медленно изучать через каждый его раздел. В некоторых из них будет встречаться SQL онлайн тренажер.Не упускайте возможность и практикуйте ваши навыки как можно чаще – чем больше практики, тем более свободно вы будете пользоваться стандартным редактором в будущем.
4. SQL Fiddle
SQL Fiddle — это очень полезный источник для более опытных и продвинутых SQL-программистов. Он позволяет вам практиковать написание кода для разного типа баз данных. Это отличный способ познакомится с различными базами данных перед началом работы с реальным миром SQL-программирования.
Одним из главных преимуществ практики SQL с помощью Fiddle является то, что этот эмулятор позволяет делиться вашим кодом онлайн с другими людьми, если вам понадобится какая-либо помощь. Просто генерируете базу данных, пишите запросы, а затем отправляете ваш уникальный URL кому захотите. Это позволяет легко делится кодом на различных образовательных форумах и сообществах.
5. Блоги
Подписка на достойный блог является хорошим способом убедиться в том, что вы не упускаете ничего нового, а также не забываете SQL, если давно в нём не практикуетесь. Чтение статей посвящённых SQL поможет вам узнать про многие новые концепты, вспомнить важные особенности и иметь мотивацию пробовать нечто новое.
Найдите несколько качественных блогов, которые часто публикуют интересные материалы. Добавьте в закладки, подпишитесь на рассылку или просто регулярно их проверяйте на предмет новых обновлений. Одним из самых рекомендуемых блогов на данный момент является Stats Bot. Несмотря на то, что они не предоставляют много нового контента, их уже существующие материалы очень сильно помогают в практике SQL онлайн и даже предоставляют некоторые SQL задачи.
6. Сайт SQL Test
SQL Test — довольно схож с SQL Fiddle, это тоже SQL онлайн тренажёр, но предлагает целый ряд различных функций. Первым делом, перед началом практики ваших навыков на SQL Test, вам нужно выбрать тип базы данных, с которой вы хотите работать. На момент написания, поддерживается два типа MySQL и Oracle. Однако это две самые популярные и распространённые системы, поэтому практика с ними будет ценной для каждого программиста!
Выбираете тип вашей базы данных и переходите на окно интерактивного редактора кода. Используя этот редактор, для начала вы можете создать экспериментальную базу данных, а уже затем начинать практиковаться в её управлении. SQL Test также предлагает целый раздел о различных полезных концептах и синтаксисах, поэтому можете уделить этому особое внимание.
7. Форумы
Ещё одним отличным местом для практики SQL онлайн являются форумы по программированию. К примеру, Stack Overflow имеет огромное сообщество разработчиков, которые чаще всего очень открыты для новичков и готовы ответить на любые вопросы касающиеся SQL. Когда хотите найти SQL задачи для себя, то просто заходите на форум в поисках подходящего вопроса.
Мы рекомендуем использовать Stack Overflow, так как он обладает одним из самых активных сообществ по SQL. Переходим на сайт, ищем своеобразные SQL задачи среди недавно опубликованных вопросов. Отвечая на вопросы других людей, вы сможете закрепить свои навыки и знания. Если вы пока ещё не можете найти то, на что можете ответить, то почитайте ответы других пользователей, чтобы узнать что-либо новое.
Запомните, даже простое общение на тему SQL может быть отличной практикой для вас.
8. Schemaverse
Практиковаться используя обычный SQL онлайн тренажер не всегда интересно. Однако использование интерактивных игр по программированию, вроде Schemaverse, может помочь вам практиковаться в решении различных упражнений и изучении новых концептов. Подобные приложения очень интересны, мотивирующие и увлекательные, поэтому могут стать глотком свежего воздуха после работы с текстовыми источниками SQL.
Schemaverse — это простая многопользовательская онлайн игра, которая реализована внутри базы данных SQL. Используя SQL-команды, вам необходимо управлять флотом космических кораблей, защищать их от вражеских атак, атаковать врагов при необходимости и продвигаться вверх по таблице рейтинга, чтобы стать мастером Schemaverse! Как вы можете себе представить, это довольно интересный способ попрактиковаться в навыках SQL онлайн и мы поддерживаем подобный подход к обучению для тех, кто уже имеет базовые знания SQL.
9. Видео На YouTube
Видео на YouTube могут предложить вам другую точку зрения на практику SQL онлайн. Самые инновационные способы практики навыков SQL чаще всего обсуждаются именно в видео. И то количество знаний, которое вы можете почерпнуть за 10-минутное видео просто невероятно.
Если вам интересно практиковать ваши навыки в SQL через видео на YouTube, то для начала вам нужно найти подходящие по тематике каналы. Найдите каналы с большим количеством подписчиков и хорошим соотношением лайков. Лучше всего вначале просмотреть видео от начала и до конца без остановки, а уже затем отмотать видео назад, уделить особое внимание сложным моментам и сделать соответствующие заметки.
10. Reddit
Reddit — это невероятно недооценённый источник для практики SQL. Он содержит гораздо больше информации, чем другие форумы, поэтому лучше всего использовать его наряду с более специфическими сообществами, когда вы не можете найти или получить ответ на какой-то вопрос там.
Просто перейдите в подраздел SQL, просмотрите вопросы людей, которые требуют ответа и постарайтесь помочь им. Участвуйте в дискуссиях и делайте записи об интересных для вас аспектах. Однако запомните, любой человек может написать сообщение в Reddit, поэтому основным недостатком этого источника является его ненадёжность. Одним из самых компетентных в этом вопросе является подраздел “Learn SQL”.
Самые Популярные Статьи
Взгляните на нашу коллекцию руководств, статей и уроков про платформы для онлайн обучения и массовые открытые онлайн курсы. Всегда будьте в курсе и принимайте взвешенные решения!
Заключение
Найти хорошее место для практики SQL может быть сложно. Через какое-то время становится понятно, что большая часть онлайн источников разработаны людьми без продвинутых знаний в SQL, что означает либо неправильную информацию, либо очень упрощённую её версию. К счастью для вас, мы нашли 10 отличных источников как для практики, так и для изучения SQL. Здесь вы найдёте как SQL онлайн тренажер, так и эмулятор популярной базы данных
Убедитесь, что вы уже знакомы с базовыми концептами SQL или начните их изучение с помощью интерактивного курса. Затем попробуйте завершить некоторые базовые испытания и задачи. Для этого вы можете воспользоваться сайтами вроде SQL Fiddle и SQL Test, которые позволят практиковать написание запросов. Также, хорошей идеей будет присоединение к какому-либо сообществу через Reddit или Stack Overflow.
Уделяйте практике и изучению достаточно времени и следуйте только самым лучшим практикам в написании кода. Не ленитесь, или вы можете выработать у себя плохие привычки в программирование, что позднее станет настоящим препятствием для вас в вашей работе. Но прежде всего, старайтесь сохранять мотивацию и наслаждайтесь обучением, так как это самое главное для достижения ваших целей.
Оставьте ваше честное мнение
Оставьте ваше честное мнение и помогите тысячам людей выбрать лучшую платформу для онлайн обучения. Все отзывы, позитивные или негативные, будут приниматься, если они честны. Мы не публикуем предвзятые отзывы и спам. Поэтому, если вы хотите поделиться вашим опытом, мнением или дать совет — у вас есть всё необходимое!
5 заданий по SQL с реальных собеседований
SQL — один из самых востребованных навыков в современной IT индустрии (на 3 месте по популярности согласно StackOverflow Developer Survey 2020, даже Python идет на 4 месте).
Само собой, конкуренция в этой сфере огромна и собеседования порой превращаются в сущую пытку — кандидатам дают огромные задачи, задают десятки каверзных вопросов, устраивают дизайн-интервью и все это на позицию Junior аналитика…
Сегодня Елизавета, аналитик и эксперт IT Resume, делится 5 задачами и вопросами, которые входят в программу подготовки к собеседованию SQL Interview. Это задачи с реальных собеседований в крупные IT-компании, и они разбиты по уровням — Junior, Middle и Senior. Попробуйте и вы свои силы — сможете их решить без подсказки 😉
Елизавета Рузова
аналитик и эксперт в IT Resume
Вводные данные
Есть таблица анализов Analysis:
- an_id — ID анализа;
- an_name — название анализа;
- an_cost — себестоимость анализа;
- an_price — розничная цена анализа;
- an_group — группа анализов.
Есть таблица групп анализов Groups:
- gr_id — ID группы;
- gr_name — название группы;
- gr_temp — температурный режим хранения.
Есть таблица заказов Orders:
- ord_id — ID заказа;
- ord_datetime — дата и время заказа;
- ord_an — ID анализа.
Далее мы будем работать с этими таблицами.
Задача 1. Уровень: Junior
Формулировка: вывести название и цену для всех анализов, которые продавались 5 февраля 2020 и всю следующую неделю.
Это задача для начинающих специалистов. В ней проверяется базовое знание SELECT-запросов и умение работать с датой-временем.
Примечание На собеседованиях редко придираются к специфике диалекта — если Вы привыкли работать в PostgreSQL, то используйте привычные функции. Главное — правильно решить задачу.
Ответ
Задача 2. Уровень: Middle
Формулировка: нарастающим итогом рассчитать, как увеличивалось количество проданных тестов каждый месяц каждого года с разбивкой по группе.
Эта задача уже более высокого уровня: ее можно давать как Middle, так и Junior специалистам. Здесь проверяется базовое понимание оконных функций, джоинов и группировок.
Примечание После того, как вы написали первую версию своего запроса, попробуйте его оптимизировать. Например, в данном примере мы используем CTE — обобщенные табличные выражения.
Ответ
Задача 3: Уровень Senior
В этой задаче мы будем работать с другой таблицей (да, она будет всего одна). Сам запрос в этой задаче не сложный, но для его написания необходимо как бы уметь «мыслить на SQL».
Рассмотрим таблицу балансов клиентов:
ClientBalance(client_id, client_name, client_balance_date, client_balance_value)
- client_id — идентификатор клиента;
- client_name — ФИО клиента;
- client_balance_date — дата баланса клиента;
- client_balance_value — значение баланса клиента.
Формулировка: в данной таблице в какой-то момент времени появились полные дубли. Предложите способ для избавления от них без создания новой таблицы.
Ответ
Вопрос 1. Уровень: Junior
Есть категория «хитрых» вопросов, которые особенно любят задавать Junior-специалистам. Хотя чего уж там, любым специалистам.
Один из таких видов — вопросы по темам, на которые в повседневной жизни не обращаешь внимания и о которых не задумываешься. Просто делаешь на автомате, а на собеседовании это стреляет. Ну или на проекте, когда код начинает работать неправильно. Но это другая история…
Вопрос: Как оператор GROUP BY
обрабатывает поля с NULL?
Если Вы не знаете ответ на этот вопрос, то после прочтения ответа обязательно проверьте свои проекты — может у вас где-то закралась ошибка? 😉
Ответ
Учитывая, что NULL в SQL — просто отсутствие значения, то все значения NULL при группировке попадают в одну группу. Например, пусть есть таблица:
name | score ------|------- Vasya | 5 Petya | 10 Petya | 3 Vasya | 4 NULL | 3 NULL | 8
Тогда запрос select sum(score) from table group by name
даст:
name | score ------|------- Vasya | 9 Petya | 13 NULL | 11
Вопрос 2. Уровень Middle
Этот вопрос не такой хитрый, как предыдущий, а вполне себе конкретный. Однако, он требует знания оконных функций и их тонкостей, а это исконное Middle требование.
Вопрос: В чем отличие функции RANK()
от DENSE_RANK()
?
Примечание Кстати говоря, по мотивам этого вопроса очень любят давать задачи на собеседованиях в разных вариациях: пронумеровать строки с одинаковыми значениями без разрывов, с разрывами и так далее. Так что потренируйтесь на досуге 🙂
Ответ
По аналогии с функцией ROW_NUMBER
, оконные функции RANK
и DENSE_RANK
служат для нумерации строк. Однако, делают они это немного иначе: строки с одинаковым значениям получают одинаковый ранг. Для ряда задач это логично: если у двух сотрудников одинаковая зарплата, мы не можем сказать, что кто-то из них первый, а кто-то второй. Они одинаковы. Но при таком подходе возникает проблема: а какой ранг должен получить следующий сотрудник? Например, если первые два были одинаковые и у них ранги 1, то сотрудник со второй зарплатой в компании должен иметь ранг 2 или 3?
Эпилог
Мы разобрали с вами всего 5 возможных заданий, которые судьба и рекрутеры могут подкинуть вам на собеседовании. Однако, вариантов, на самом деле, масса. И чтобы реально подготовиться к собеседованию, нужно нарешать как можно больше задач, понять и прочувствовать теоретические аспекты и буквально научиться «мыслить на SQL». Именно на это и нацелена программа SQL Interview — так что будем рады помочь вам получить работу мечты!
И, помимо этого, не забывайте: SQL — чисто прикладной инструмент. Чтобы его освоить, нужно практиковаться, практиковаться и практиковаться. Выучить его можно буквально за несколько недель интенсивных занятий, а вот освоить на уровне Senior… порой на это уходят годы.
Реклама на Tproger: найдем для вас разработчиков нужного стека и уровня.
Подробнее
Реклама на tproger.ru
Загрузка
Сайты с упражнениями по SQL
Напишу банальную мысль, но мало знать теорию, намного важнее уметь использовать эту теорию на практике. В этой заметке я собрала на мой взгляд самые полезные ресурсы с упражнениями для тренировки SQL.
Русскоязычные ресурсыsql-exТоп-1 во всех аналогичных подборках. Сайт действительно очень классный, на нём много упражнений на разные темы. Есть 2 больших раздела — обучающий этап и рейтинговый этап. На обучающем этапе можно выбрать одну из четырех СУБД: MSSQL, MySQL, PgSQL, Oracle. Рейтинговый этап предполагает только использование диалекта MSSQL.
При решении определенного количества задач рейтингового этапа можно получить сертификат от сайта (сертификат платный). Упражнения с sql-ex периодически всплывают на собеседованиях.
После того как ответ будет принят системой откроется доступ по форуму по задаче, где можно посмотреть решения других участников, попадаются очень интересные варианты порой. Отличная возможность для обмена опытом.
Кроме того в дополнение к упражнениям идёт онлайн учебник sql-tutorial.ru (или наоборот упражнения идут в дополнение к учебнику). Информация в учебнике подробная и хорошо структурированная, также к каждой теме есть ссылки на упражнения.
sql-academyТакже русскоязычный ресурс. На сайте есть учебник и онлайн-тренажер для отработки теории. Задания подразделяются на 3 уровня сложности: легкие, средние и сложные. Также есть разделение на темы — SELECT и DML. Каждая задача состоит из условия и ERD-диаграммы для соотвествующей схемы данных. Всего задач 66.
Решать задания можно бесплатно, но если вы хотите увидеть варианты ответов или получить сертификат (ценность его, честно говоря, непонятна), то необходимо будет заплатить за премиум доступ.
Англоязычные ресурсыhackerrankИнтересный набор задач с тремя уровнями сложности и охватывающий 6 тем:
- базовый SQL
- продвинутый SQL
- базовые и продвинутые JOIN
- агрегации
- продвинутые запросы.
Есть необычные для SQL задачи, которые помогают увидеть на что способен этот язык. Есть элементы игровой формы (для тех, кто как и я любит ачивки) — за задания даются баллы, за баллы — значки. В SQL 5 уровней от 1 Star — Bronze до 5 Star — Gold. Слева есть вертикальная панель, где можно посмотреть ранговый список решивших эту задачу (Leaderboard) и обсуждение (Discussion) там можно задать вопрос, а также посмотреть варианты решений, которыми поделились другие участники.
На сайте также есть упражнения для тренировки других языков программирования, например, Python.
leetcodeТри уровня сложности — easy, medium и hard. Решать можно на одном из трёх диалектов — Oracle, MS SQL Server, MySQL. При нажатии на кнопку SQL Schema показывается запрос, с помощью которого были созданы таблицы для данной задачи. Рекомендую сначала проверить свой код на открытых тестовых данных, то делается нажатием на кнопку Run Code, а когда вы уже увережены в своём решении, то отправить его на проверку с помощью Submit. В случае успешного решения вам будут показаны метрики вашего запроса по времени и по памяти. Если на вкладке с результатами нажать на ссылку Detail, то можно увидеть своё решение относительно других решений и посмотреть другие решения — лучше и хуже вашего. Решение и обсуждения (часто другие участники задают вопросы и выкладывают свои варианты решения) можно посмотреть соответственно в закладках Solution и Discuss. Некоторые задания, к сожалению, доступны только для платного тарифа Premium.
Чем ещё примечателем этот сайт — на нём есть реальные задания с собеседований от различных компаний. Они, правда, тоже платные. Но, в любом случае, бесплатных заданий тоже хватит, чтобы потренироваться и поломать голову.
PostgreSQL ExercisesЗадания этого сайта посвящены диалекту PostgreSQL (но помним, что многие запросы могут быть написаны универсально с помощью конструкций из стандарта ANSI SQL). Упражнения разделены на темы: базовый SQL, соединения и подзапросы, модификация данных, агрегации, даты, строки, рекурсия.
К каждому заданию есть схема данных, ожидаемые результаты, также есть кнопка Hint, если нужна подсказка. Правильный ответ и пояснения доступны по кнопке Answers and Discussion. На вкладке Getting Started можно скачать SQL-скрипт и развернуть таблицы из заданий на своей машине.
Сайт устроен достаточно удобно и дружелюбно для новичка.
Oracle live SQLА если вы хотите погрузиться в диалект Oracle SQL, то можно начать с этого сайта. Здесь можно изучить разные туториалы (примеры кода с пояснениями) и писать свои собственные запросы без установки базы.
По Oracle у меня за годы работы набралось несколько несколько любимых ресурсов для обучения и тренировки, в том числе, и по PL/SQL. Но это тема для отдельного поста.
Хорошей вам практики и лёгких запросов!
Самая удобная онлайн-среда обучения Oracle SQL — Live SQL
Среда обучения Oracle SQL в Интернете — Live SQL
- Обзор
- Начать одним щелчком мыши
- Войдите и зарегистрируйтесь
- Начните путь к написанию SQL
- Параметры Live SQL
- 1. SQL Worksheet
- 2. My Session
- 3. Quick SQL
- 4. My Scripts
- 5. My Tutorials
- 6. Code Library
- подводить итоги
- Справка
Обзор
Live SQL — это бесплатная облачная служба, предоставляемая Oracle. Она предоставляет разработчикам и администраторам баз данных онлайн-платформу разработки для тестирования и обмена сценариями SQL, PL / SQL, руководствами и передовыми практиками.
Вы можете получить доступ к базе данных Oracle (режим схемы) через эту службу онлайн, написать свои собственные операторы SQL и сценарии, испытать различные функции SQL и улучшить свой уровень программирования SQL в процессе обучения и практики.
В настоящее время (2020/3) версия Live SQL для базы данных — 19c, поэтому вы можете легко испытать новейшие функции 19c без установки базы данных.
Начать одним щелчком мыши
Введите следующий URL-адрес в браузере, чтобы получить доступ к веб-сайту Live SQL.
http://livesql.oracle.com
▲ Интерфейс Live SQL
Войдите и зарегистрируйтесь
Если вы хотите испытать Live SQL, вам необходимо войти в систему с учетной записью Oracle.com, чтобы начать работу. Нажмите [Войти] в правом верхнем углу, чтобы войти.
Если у вас есть учетная запись Oracle.com, вы можете напрямую ввести свою учетную запись и пароль в [Вход в учетную запись Oracle], чтобы войти в систему и начать работу с Live SQL.
Если у вас нет учетной записи Oracle.com, вы можете нажать [Создать учетную запись], чтобы бесплатно создать пользователя.
Введите соответствующее содержание, чтобы создать учетную запись, а затем войдите в систему.
Примите отказ от ответственности при первом входе в систему.
Начните путь к написанию SQL
Щелкните [Начать кодирование сейчас], чтобы начать писать SQL.
Введите свой собственный SQL в [Таблица SQL], нажмите [Выполнить], чтобы выполнить SQL, и просмотрите результаты выполнения в нижней части окна.
Параметры Live SQL
В левой части браузера находятся различные меню параметров службы Live SQL. Вы можете использовать различные функции, щелкнув каждое меню.
1. SQL Worksheet
Меню [Таблица SQL] — это окно выполнения SQL, через которое можно выполнять онлайн-упражнения SQL.
Конкретное использование выглядит следующим образом:
1. Напишите произвольный SQL 2. Щелкните [Выполнить]. 3. Просмотрите результаты выполнения в нижней части окна.
2. My Session
Меню «Моя сессия» — это информация о сессии.
Ниже представлены 3 подменю, а именно:
1.【Previous Sessions】
Информацию о предыдущем сеансе, включая набор операторов SQL, которые вы вводили с помощью этой среды в прошлом, вы можете просмотреть, щелкнув [Просмотр сеанса], или вы можете перезагрузить и запустить эти операторы или сохранить их как сценарии.
2.【Utilization】
Используйте различную информацию об ограничении ресурсов Live SQL, такую как максимальный период сеанса, количество сеансов и используемое пространство. Если эти ограничения достигнуты, самая старая информация о сеансе будет удалена.
3.【NLS】
Каждый запрос страницы Live SQL — это новый сеанс базы данных. Чтобы сохранить состояние NLS выполнения оператора SQL на каждой странице Live SQL, Live SQL запомнит ваши настройки NLS и применит их, чтобы гарантировать, что каждый сеанс имеет правильный NLS.
Эта страница [NLS] используется для записи и отображения настроек NLS.
3. Quick SQL
Меню [Quick SQL] может генерировать операторы SQL с помощью сокращенного синтаксиса SQL. Конкретный сокращенный синтаксис SQL см. На подстранице [Quick SQL Samples].
4. My Scripts
[Мои сценарии] — это ваша собственная страница сценария, вы можете сохранить выполненный контент как сценарий или загрузить свой собственный локальный сценарий в среду с помощью функции загрузки, что удобно в использовании.
5. My Tutorials
[Мои учебные пособия] Пользователи записывают учебные пособия и пути, которые они выучили.
6. Code Library
[Библиотека кода] — это сценарии SQL и учебные пособия по SQL, которыми пользуются другие пользователи.
подводить итоги
Эта статья в основном знакомит с удобной обучающей средой Oracle SQL — облачным сервисом Live SQL, надеюсь, она вам поможет!
Справка
https://blogs. oracle.com/imc/oracle-live-sql
https://blogs.oracle.com/oracle-database/oracle-database-19c-now-available-on-livesql
https://blogs.oracle.com/oracle-database/oracle-database-documentation-integration-with-live-sql
https://blogs.oracle.com/developers/oracle-database-examples-now-on-github
Трек: SQL для разработчиков
Трек В разработке
«Трек SQL для программистов» подойдёт тем, кто хочет разобраться с основами реляционных баз данных на примере SQL. Научиться выполнять запросы и самостоятельно проектировать базу.
3 900 ₽ в месяц
Учитесь сколько нужно, отменить подписку можно в любой момент
Что включено в трек
27 текстовых уроков
0 дипломных проектов
20 упражнений в тренажере
73 проверочных теста
Помощь в «Обсуждениях»
Доступ к остальным программам
Получить доступ к программе
Учим необходимому
База данных – центральная часть любого приложения. Она хранит данные, которыми манипулирует код, добавляет их, обновляет и удаляет. Несмотря на то, что базы бывают очень разными, в основе большинства из них лежит общий подход основанный на табличном представлении данных. Для управления данными в этих базах используется язык запросов SQL. Этот язык не зависит от используемоего языка программирования и работает одинаково из любой программы. Изучите основы SQL и начните самостоятельно выполнять запросы к базам данных.Программа модуля
Курсы
Теория, квизы, практика в тренажере
Основы реляционных баз данных
postgresql транзакции нормальные формы СУБД
Обучение в браузере: теория, тесты, упражнения
Кому подойдёт обучение
- Тем, кто умеет программировать хотя бы на одном любом языке
- Тем, кто уже программирует и хочет повысить свой профессиональный уровень
- Тем, кто не знаком с этой темой и хочет в ней разобраться на хорошем уровне
Корпоративное обучение для команд и организаций
Подробнее
Хекслет
C 2012 года на рынке онлайн-образования. Около 10 000 человек обучаются на платформе ежемесячно. Более 30 000 человек в Slack-сообществе Хекслета — это одно из самых больших комьюнити опытных и начинающих программистов в рунете.
Вопросы и ответы
Чем вы отличаетесь от других школ?
Историей. Хекслет существует с 2012 года. Мы начинали, когда онлайн-образование еще не было столько популярным, и создали онлайн-тренажер, когда на EdTech вообще замахивались единицы. Сегодня Хекслет — это целое сообщество разработчиков. Мы не просто учим, мы прививаем правильные инженерные практики и развиваем хорошую инженерную культуру.
Экспертизой. Хекслет создается и развивается программистами, мы даем то, что знаем сами, в чем хорошо разбираемся. Программирование — наш единственный фокус.
Отношением к трудоустройству. Мы не обещаем его как другие. При этом студенты Хекслета получают оффер еще во время обучения, а некоторые работодатели указывают курсы Хекслета как преимущество при найме. Как такое возможно? Просто в процессе обучения мы прорабатываем те моменты, которые не оставляют шансов остаться без работы: мощные проекты, Open Source для командной практики и масса образовательных вебинаров по развитию карьеры.
Что такое трек?
Трек — это набор курсов по определенной теме для повышения квалификации и развития инженерного мышления. Треки подходят как для разработчиков с опытом, так и для новичков в качестве задания «со звёздочкой».
Сколько времени занимает учёба?
Вы можете учиться своём темпе, срок обучения не ограничен.
Мы рекомендуем выделять 15-20 часов в неделю. Так с одной стороны обучение будет достаточно интенсивным, чтобы не растягивать его надолго, а с другой — достаточно комфортным, чтобы совмещать с работой и успевать отдыхать.
Как проходит обучение?
Материал программы — это готовые курсы с адаптированной для новичков теорией, тестами на закрепление и большим количеством практических упражнений с автоматизированной проверкой прямо в браузере. В некоторых треках есть проект — вы создадите приложение, которое станет частью вашего портфолио и даст опыт реальной разработки.
Вы можете учиться самостоятельно или вместе с наставником, он поможет разобраться в сложных моментах.
Кто такой наставник?
Каждый наставник — опытный программист, который добился успехов в профессии, а теперь делится знаниями и опытом со студентами Хекслета. Кандидаты проходят строгий отбор — наставником становится лишь каждый десятый, поэтому случайных людей у нас нет.
Наставник помогает справляться с трудностями, отвечает на вопросы и делает ревью проектов.
Как оплатить?
Мы принимаем карты Visa, MasterCard и МИР любого банка, валюта счёта тоже может быть любой.
Если решите учиться самостоятельно, оформите подписку на план «Базовый». Доступ ко всем трекам откроется сразу после оплаты.
Если нужна помощь наставника, оставьте заявку на обучение. С вами свяжется куратор, подберёт подходящего наставника и пришлёт ссылку на оплату.
Двадцать пять практических упражнений по SQL | Майкл Болес
Эти вопросы и примеры решений помогут вам отточить свои навыки.
Фото: UnsplashЯзык структурированных запросов (SQL) используется для извлечения данных, хранящихся в реляционных базах данных, и управления ими. Приобретение навыков работы с SQL является важной предпосылкой для многих технологических должностей и требует некоторой практики.
В дополнение к ресурсам по обучению SQL (PGExercises, LeetCode, HackerRank, Mode), доступным в Интернете, я составил список моих любимых вопросов, которые вы можете решить вручную или решить с помощью экземпляра PostgreSQL.
Эти вопросы охватывают следующие важные понятия:
- Базовый поиск (SELECT, FROM)
- Создание и создание псевдонимов (WITH, AS, GENERATE_SERIES)
- 4 Фильтрация OR, IN, NOT IN)
- Агрегация (GROUP BY with COUNT, SUM, AVERAGE)
- Соединения (INNER JOIN, LEFT JOIN, FULL OUTER JOIN по одному или нескольким (не)равенствам, CROSS JOIN, UNION и СОЮЗ ВСЕХ) 9, <, >, =, !=)
- Операции с датой и временем (ИЗВЛЕЧЕНИЕ(месяц/день/год))
Попробуйте сами
Вы можете попробовать сами, загрузив PostgreSQL и PSevel (см. пошаговое руководство по установке), а затем выполните запросы, показанные в серых полях в тексте ниже. PSevel доступен только для Mac — если вы используете ПК, вы можете попробовать одну из этих альтернатив Windows.
Попробуйте выполнить эти запросы самостоятельно, используя PSequel и приведенные ниже входные таблицы.Первый блок текста в каждом показанном ниже запросе устанавливает таблицу ввода и имеет следующий формат:
WITH input_table (column_1, column_2)
AS (ЗНАЧЕНИЯ
(1, 'A'), (2, 'B'))
Вы можете выполнять запросы к входной таблице с помощью PSequel (показано выше) и легко создавать новые таблицы для своих задач, используя этот шаблон.
Учебные веб-ресурсы по SQL не соответствуют требованиям по нескольким параметрам. LeetCode, например, не поддерживает использование оконных функций и скрывает самые интересные вопросы за платным доступом. Кроме того, выполнение SQL-запросов в вашем браузере может быть очень медленным — наборы данных велики, а скорость извлечения часто ограничена для пользователей без премиум-доступа. С другой стороны, локальное выполнение запроса происходит мгновенно и позволяет выполнять быструю итерацию по синтаксическим ошибкам и промежуточным таблицам. Я обнаружил, что это более приятный опыт обучения.
Приведенные ниже вопросы включают примеры решений, которые, как подтверждено, работают в PostgreSQL. Имейте в виду, что обычно существует более одного способа получить правильный ответ на задачу SQL. Я предпочитаю использовать общие табличные выражения (CTE), а не вложенные подзапросы — CTE позволяют более линейно проиллюстрировать последовательность обработки данных. Однако оба подхода могут дать идентичные решения. Мне также нравится следовать соглашению о написании операторов SQL заглавными буквами (SELECT, FROM, WHERE и т. д.), имен столбцов в нижнем регистре (user_id, date и т. д.) и простых псевдонимов таблиц (t1, t2 и т. д.). где возможно.
Фрагменты кода, показанные ниже, можно запустить в PSequel как есть, чтобы получить отображаемый результат. Обратите внимание на одну особенность Postgres: дроби должны быть умножены на 1,0 для преобразования из целого числа в формат с плавающей запятой. Это не требуется в других реализациях SQL и не ожидается на собеседованиях.
Не стесняйтесь оставлять свои варианты ответов в комментариях!
1. Коэффициенты отмены
Из следующей таблицы с идентификаторами пользователей, действиями и датами напишите запрос, чтобы вернуть коэффициент публикации и отмены для каждого пользователя.
С пользователями (user_id, действие, дата)
КАК (ЗНАЧЕНИЯ
(1, 'начало', CAST ('01-01-20' AS date)),
(1, 'отмена', CAST ('01- 02-20' AS дата)),
(2,'начало', CAST('01-03-20' AS дата)),
(2,'опубликовать', CAST('01-04-20' AS дата )),
(3, 'старт', CAST ('01-05-20' дата AS)),
(3, 'отмена', CAST ('01-06-20' дата AS)),
(1 ,'start', CAST('01-07-20' AS date)),
(1,'publish', CAST('01-08-20' AS date))),
-- получить количество запусков , отменяет и публикует для каждого пользователя t1 AS (
SELECT
user_id,
SUM(СЛУЧАЙ, КОГДА действие = 'start' THEN 1 ELSE 0 END) КАК начинается,
SUM(CASE WHEN action = 'cancel' THEN 1 ELSE 0 END) AS отменяет,
SUM( CASE WHEN action = 'publish' THEN 1 ELSE 0 END) AS публикует
FROM users
GROUP BY 1
ORDER BY 1) -- рассчитать публикацию, процент отмен для каждого пользователя путем деления на количество запусков, приведение к числу с плавающей запятой путем умножения на 1. 0 (деление этажей по умолчанию — это причуда некоторых инструментов SQL, не всегда нужная) SELECT
user_id,
1.0*публикация/запуск AS publish_rate,
1.0*отмена/запуск AS cancel_rate
FROM t1
2. Изменения в собственном капитале
Из следующей таблицы транзакций между двумя пользователями напишите запрос для возврата изменение чистой стоимости каждого пользователя, упорядоченное по уменьшению чистого изменения.
С транзакциями (отправитель, получатель, сумма, дата_транзакции)
AS (ЗНАЧЕНИЯ
(5, 2, 10, CAST('2-12-20' AS date)),
(1, 3, 15, CAST(' 2-13-20' AS дата)),
(2, 1, 20, CAST('2-13-20' дата AS)),
(2, 3, 25, CAST('2-14-20' дата AS)),
(3, 1, 20, CAST('2-15-20' дата AS)),
(3, 2, 15, CAST('2-15-20' дата AS)),
(1, 4, 5, CAST('2 -16-20' AS date))),
-- сумма сумм по каждому отправителю (дебет) и получателю (кредит) дебет AS (
SELECT
отправитель,
СУММА(сумма) AS дебетована
ИЗ транзакций
ГРУППИРОВАТЬ ПО 1 ), кредиты КАК (
ВЫБЕРИТЕ
получатель,
СУММА(сумма) КАК зачислено
ОТ транзакций
GROUP BY 1 ) -- полное (внешнее) объединение таблиц дебетов и кредитов по идентификатору пользователя, принимая чистое изменение как разницу между кредитами и дебетами, принуждая нули к нулям с помощью union() SELECT
COALESCE(отправитель, получатель) КАК пользователь ,
ОБЪЕДИНЕНИЕ(зачислено, 0) - ОБЪЕДИНЕНО(дебет, 0) AS net_change
FROM дебет d
FULL JOIN кредит c
ON d. sender = c.receiver
ORDER BY 2 DESC
3. Наиболее часто встречающиеся позиции
From следующую таблицу, содержащую список заказываемых дат и элементов, напишите запрос, чтобы получить наиболее часто заказываемый элемент в каждую дату. Возврат нескольких предметов в случае ничьей.
С элементами (дата, элемент)
AS (ЗНАЧЕНИЯ
(CAST('01-01-20' AS date),'apple'),
(CAST('01-01-20' AS date),'apple '),
(CAST('01-01-20' дата AS),'груша'),
(CAST('01-01-20' дата AS),'груша'),
(CAST('01- 02-20' AS date),'груша'),
(CAST('01-02-20' AS date),'груша'),
(CAST('01-02-20' AS date),'груша '),
(CAST('01-02-20' AS date),'оранжевый')), -- добавить столбец количества элементов в существующую таблицу, группируя по дате и столбцам элементов t1 AS (
SELECT
date,
item,
COUNT(*) AS item_count
FROM items
GROUP BY 1, 2
ORDER BY 1), -- добавить ранговый столбец в порядке убывания, секционирование по дате t2 AS (
SELECT
* ,
RANK() OVER (PARTITION BY date ORDER BY item_count DESC) AS date_rank
FROM t1) -- вернуть все даты и элементы, для которых rank = 1 4. Разница во времени между последними действиямиИз следующей таблицы действий пользователя напишите запрос, возвращающий для каждого пользователя время, прошедшее между последним действием и предпоследним действием, в порядке возрастания идентификатора пользователя.
С пользователями (user_id, action, action_date)
AS (ЗНАЧЕНИЯ
(1, 'начало', CAST('2-12-20' AS date)),
(1, 'отмена', CAST('2- 13-20' AS дата)),
(2, 'начало', CAST('2-11-20' AS дата)),
(2, 'опубликовать', CAST('2-14-20' AS дата )),
(3, 'начало', CAST('2-15-20' дата по AS)),
(3, 'отмена', CAST('2-15-20' дата по AS)),
(4 , 'start', CAST('2-18-20' AS date)),
(1, 'опубликовать', CAST('2-19-20' AS date))),
-- создать ранг даты столбец, разделенный по идентификатору пользователя, с использованием оконной функции ROW_NUMBER() t1 AS (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY action_date DESC) AS date_rank
FROM users ), -- фильтровать столбец ранга даты, чтобы получить последние и следующие последние действия из этой таблицы last AS (
SELECT *
FROM t1
WHERE date_rank = 1 ),next_latest AS (
SELECT *
FROM t1
WHERE date_rank = 2 ) -- левое соединение этих двух таблиц, вычитание последней из второй последней, чтобы получить истекшее время SELECT
l1. user_id,
l1.action_date - l2.action_date AS days_elapsed
FROM last l1
LEFT JOIN next_latest l2
ON l1.user_id = l2.user_id
ORDER BY 15. Суперпользователи
Компания определяет своих суперпользователей как тех, кто совершил не менее двух сделок. Из следующей таблицы напишите запрос, возвращающий для каждого пользователя дату, когда он стал суперпользователем, сначала в порядке старших суперпользователей. Пользователи, не являющиеся суперпользователями, также должны присутствовать в таблице.
С пользователями (user_id, product_id, transaction_date)
AS (ЗНАЧЕНИЯ
(1, 101, CAST('2-12-20' дата AS)),
(2, 105, CAST('2-13-20' дата AS)),
(1, 111, CAST('2-14-20' AS дата)),
(3, 121, CAST('2-15-20' AS дата)),
(1, 101, CAST('2-16-20' AS дата)),
(1, 101, CAST('2-16-20' AS дата)),
(2, 105, CAST('2-17-20' AS дата)),
(4, 101, CAST('2-16-20' AS дата)),
(3, 105, CAST('2-15-20' AS date))),
-- создать столбец с номером транзакции, используя ROW_NUMBER(), разбивая по идентификатору пользователя t1 AS (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY transaction_date) AS transaction_number
FROM users), -- отфильтровать результирующую таблицу по номеру_транзакции = 2 t2 AS (
SELECT
user_id,
transaction_date
FROM t1
WHERE transaction_number = 2 ), -- оставить присоединение суперпользователей к полной пользовательской таблице, упорядочить по date t3 AS (
SELECT DISTINCT user_id
FROM users )SELECT
t3. user_id,
transaction_date AS superuser_date
FROM t3
LEFT JOIN t2
ON t3.user_id = t2.user_id
90 BY тяжело)Используя следующие две таблицы, напишите запрос для возврата рекомендаций страниц пользователю социальной сети на основе страниц, которые понравились его друзьям, но которые они еще не отметили как понравившиеся. Упорядочить результат по возрастанию идентификатора пользователя. Источник.
С друзьями (user_id, friend)
КАК (ЗНАЧЕНИЯ
(1, 2), (1, 3), (1, 4), (2, 1), (3, 1), (3, 4), (4, 1), (4, 3)),лайки (user_id, page_likes)
AS (ЗНАЧЕНИЯ
(1, 'A'), (1, 'B'), (1, 'C'), (2 , 'А'), (3, 'Б'), (3, 'В'), (4, 'Б')),
-- внутреннее объединение друзей и таблицы лайков страниц по user_id t1 AS (
SELECT
l.user_id,
l.page_likes,
f.friend
FROM likes l
ПРИСОЕДИНЯЙСЯ к друзьям f
ON l.user_id = f.user_id ), -- оставил лайки на этом соединении, требуя пользователь = друг и лайки пользователя = лайки друга t1
LEFT JOIN нравится l
ON t1. friend = l.user_id
И t1.page_likes = l.page_likes ) -- если пара друзей не имеет общего лайка на странице, столбец лайков друзей будет нулевым - вытащите эти записи SELECT DISTINCT
друг КАК user_id,
page_likes КАК рекомендованная_страница
FROM t2
WHERE friend_likes IS NULL
ORDER BY 17. Мобильные и веб-посетители
С помощью следующих двух таблиц верните долю пользователей, которые посещали только мобильные устройства, только веб-сайты и оба.
С мобильным телефоном (user_id, page_url)
AS (ЗНАЧЕНИЯ
(1, 'A'), (2, 'B'), (3, 'C'), (4, 'A'), (9, 'B'), (2, 'C '), (10, 'B')),web (user_id, page_url)
AS (ЗНАЧЕНИЯ
(6, 'A'), (2, 'B'), (3, 'C'), (7, 'A'), (4, 'B'), (8, 'C'), (5, 'B')),
-- внешнее соединение мобильных и веб-пользователей с идентификатором пользователя t1 AS (
SELECT DISTINCT
m.user_id AS mobile_user,
w.user_id AS web_user
FROM mobile m
FULL JOIN web w
ON m. user_id = w.user_id) -- рассчитать долю только для мобильных устройств, только для Интернета и обоих как среднее значений (единиц и нулей), указанных в условии оператора case SELECT
AVG(СЛУЧАЙ, КОГДА mobile_user НЕ НУЛЕН, И web_user равен NULL, ТОГДА 1 ЕЩЕ 0 КОНЕЦ) AS mobile_fraction,
AVG(СЛУЧАЙ, КОГДА web_user НЕ НУЛЕН, И mobile_user равен NULL, ТОГДА 1 ELSE 0 КОНЕЦ) AS web_fraction,
AVG(CASE КОГДА web_user НЕ NULL И mobile_user НЕ NULL THEN 1 ELSE 0 END) AS Both_fraction
FROM t18. Скорость обновления по действию продукта (жесткое)
Учитывая следующие две таблицы, верните долю пользователей, округленную до двух десятичных разрядов, которые получили доступ ко второй функции (введите: F2 в таблице событий) и перешли на премиум в течение первых 30 дней после регистрации.
С пользователями (user_id, name, join_date)
AS (ЗНАЧЕНИЯ
(1, 'Джон', CAST ('2-14-20' AS date)),
(2, 'Джейн', CAST ('2- 14-20' AS дата)),
(3, 'Джилл', CAST('2-15-20' AS дата)),
(4, 'Джош', CAST('2-15-20' AS дата) )),
(5, 'Джин', CAST('2-16-20' дата AS)),
(6, 'Justin', CAST('2-17-20' AS дата)),
(7 , 'Джереми', CAST('2-18-20' AS date))),events (user_id, type, access_date)
AS (VALUES
(1, 'F1', CAST('3-1-20' AS дата)),
(2, 'F2', CAST('3-2-20' AS дата)),
(2, 'P', CAST('3-12-20' дата AS)),
(3, 'F2', CAST('3-15-20' дата AS)),
(4, 'F2 ', CAST('3-15-20' дата AS)),
(1, 'P', CAST('3-16-20' AS дата)),
(3, 'P', CAST('3 -22-20' AS date))),
-- получить пользователей функции 2 и их дату доступа к функции 2 t1 AS (
SELECT
user_id,
type,
access_date AS f2_date
FROM events
WHERE type = ' F2' ), -- получить премиум-пользователей и дату их премиум-обновления t2 AS (
SELECT
user_id,
type,
access_date AS premium_date
FROM events
WHERE type = 'P' ), -- для каждого пользователя функции 2, получить время между присоединением и премиальным обновлением (или null, если нет обновления) путем внутреннего присоединения полных пользователей таблица с пользователями функции 2 для идентификатора пользователя и левого присоединения к премиум-пользователям для идентификатора пользователя, затем вычитание даты премиум-обновления из даты присоединения t3 AS (
SELECT t2. premium_date - u.join_date AS upgrade_time
FROM пользователей u
JOIN t1
ON u .user_id = t1.user_id
LEFT JOIN t2
ON u.user_id = t2.user_id ) -- вычислить долю пользователей со временем обновления менее 30 дней как среднее значений (единиц и нулей), указанных в условии оператора case, с округлением до двух знаков после запятойSELECT
ROUND(AVG(CASE WHEN upgrade_time < 30 THEN 1 ELSE 0 END), 2) AS upgrade_rate
FROM t39. Самые друзья
Учитывая следующую таблицу, верните список пользователей и их соответствующее количество друзей. Упорядочите результат по убыванию количества друзей, а в случае ничьей — по возрастанию идентификатора пользователя. Предположим, что отображаются только уникальные друзья
(т. е. [1, 2] больше не будет отображаться как [2, 1] ). Из LeetCode.С друзьями (пользователь1, пользователь2)
КАК (ЗНАЧЕНИЯ (1, 2), (1, 3), (1, 4), (2, 3)),
-- скомпилировать все появления пользователей в один столбец, сохранение повторяющихся записей с помощью UNION ALL t1 AS (
SELECT user1 AS user_id
FROM friends
UNION ALL
SELECT user2 AS user_id
FROM friends) -- группировка по идентификатору пользователя, подсчет всех появлений этого пользователя SELECT
user_id,
COUNT(*) КАК друзья_счет
FROM t1
СГРУППИРОВАТЬ ПО 1
ORDER BY 2 DESC10.
Агрегирование проектов (жесткое)Таблица проектов содержит три столбца: task_id, start_date и end_date. Разница между end_date и start_date составляет 1 день для каждой строки в таблице. Если даты окончания задач совпадают, они являются частью одного и того же проекта. Проекты не пересекаются.
Напишите запрос, возвращающий даты начала и окончания каждого проекта, а также количество дней, затраченных на его выполнение. Упорядочить по возрастанию продолжительности проекта и по возрастанию даты начала в случае ничьей. Из ХакерРанка.
С проектами (task_id, start_date, end_date)
AS (ЗНАЧЕНИЯ
(1, CAST('10-01-20' дата AS), CAST('10-02-20' дата AS)),
(2, CAST('10-02-20' дата AS), CAST('10-03-20' дата AS)),
(3, CAST('10-03-20' дата AS), CAST('10-04 -20' AS дата)),
(4, CAST('10-13-20' AS дата), CAST('10-14-20' AS дата)),
(5, CAST('10-14- 20' AS дата), CAST('10-15-20' AS дата)),
(6, CAST('10-28-20' AS дата), CAST('10-29-20' AS дата)) ,
(7, CAST('10-30-20' дата AS), CAST('10-31-20' AS дата))),
-- получить даты начала, отсутствующие в столбце даты окончания (это «истинные» даты начала проекта) t1 AS (
ВЫБРАТЬ start_date
ИЗ проектов
ГДЕ start_date НЕ В (ВЫБРАТЬ end_date ИЗ проектов) ), -- получить даты окончания отсутствуют в столбце даты начала (это «истинные» даты окончания проекта) t2 AS (
ВЫБЕРИТЕ дату_окончания
ИЗ проектов
ГДЕ дата_окончания НЕ ВНУТРИ (ВЫБЕРИТЕ дату_начала из проектов)), -- отфильтруйте правдоподобное начало-конец пары (начало < конец), затем найти правильную дату окончания для каждой даты начала (минимальная дата окончания, так как нет перекрывающихся проектов) t3 AS (
ВЫБРАТЬ
start_date,
MIN(end_date) AS end_date
FROM t1, t2
ГДЕ start_date < end_date
ГРУППИРОВАТЬ ПО 1 )SELECT
*,
end_date - start_date AS project_duration 1 6 t 30 ОТ 011.
Посещаемость в день рожденияПри наличии следующих двух таблиц напишите запрос, чтобы получить долю учащихся, округленную до двух знаков после запятой, которые посещали школу
(посещаемость = 1) в день своего рождения. Источник.С посещаемостью (student_id, school_date, посещаемость)
AS (ЗНАЧЕНИЯ
(1, CAST('2020-04-03' дата AS), 0),
(2, CAST('2020-04-03' дата AS), 1),
(3, CAST( '2020-04-03' дата AS), 1),
(1, CAST('2020-04-04' дата AS), 1),
(2, CAST('2020-04-04' дата AS) , 1),
(3, CAST('2020-04-04' дата AS), 1),
(1, CAST('2020-04-05' дата AS), 0),
(2, CAST( '2020-04-05' дата AS), 1),
(3, CAST('2020-04-05' дата AS), 1),
(4, CAST('2020-04-05' дата AS) , 1)),студенты (student_id, school_id,grade_level, date_of_birth)
AS (ЗНАЧЕНИЯ
(1, 2, 5, CAST('2012-04-03' дата AS)),
(2, 1, 4, CAST('2013-04-04' дата AS)),
( 3, 1, 3, CAST('2014-04-05' дата AS)),
(4, 2, 4, CAST('2013-04-03' AS date)))
-- объединить таблицу посещаемости и учащихся по идентификатору учащегося, а также дню и месяцу учебного дня = дню и месяцу дня рождения, с учетом среднего значения столбца посещаемости и округления. = s.student_id
И ВЫЧИСЛИТЬ(МЕСЯЦ ОТ_даты_школы) = ВЫЧИСЛИТЬ(МЕСЯЦ ОТ_даты_рождения)
И ВЫДЕРЖАТЬ(ДЕНЬ ИЗ_даты_школьного_образования) = ВЫЧИСЛИТЬ(ДЕНЬ ОТ_даты_рождения)ID хакера, имя и общий балл (сумма максимальных баллов за каждое выполненное задание), упорядоченные по убыванию баллов и по возрастанию ID хакера в случае равенства баллов. Не отображать записи для хакеров с нулевым счетом. Из ХакерРанка.
С хакерами (hacker_id, имя)
КАК (ЗНАЧЕНИЯ
(1, 'Джон'),
(2, 'Джейн'),
(3, 'Джо'),
(4, 'Джим')), отправки (submission_id, hacker_id, challenge_id, score)
AS (ЗНАЧЕНИЯ
(101, 1, 1, 10),
(102, 1, 1, 12),
(103, 2, 1, 11),
(104 , 2, 1, 9),
(105, 2, 2, 13),
(106, 3, 1, 9),
(107, 3, 2, 12),
(108, 3, 2, 15) ),
(109, 4, 1, 0)),
-- из таблицы представлений получить максимальный балл за каждую пару хакер-вызов t1 AS (
SELECT
hacker_id,
challenge_id,
MAX(score) AS max_score
FROM submits
GROUP BY 1, 2 ) -- внутреннее соединение с таблицей хакеров, суммирование всех максимальных баллов, фильтрация для исключения хакеров с нулевым общим счетом и упорядоченным результатом по общему счету и идентификатору хакера SELECT
t1. hacker_id,
h.name,
SUM(t1.max_score) AS total_score
FROM t1
ПРИСОЕДИНЯЙТЕСЬ к хакерам h
ON t1.hacker_id = h .hacker_id
ГРУППИРОВАТЬ ПО 1, 2
ИМЕЕТ СУММУ (max_score) > 0
ORDER BY 3 DESC, 113. Ранжирование без RANK (жесткое)
Напишите запрос для ранжирования результатов в следующей таблице без использования оконной функции. Если есть ничья между двумя оценками, обе должны иметь одинаковый ранг. После ничьей следующим рангом должно быть следующее последовательное целочисленное значение. Из LeetCode.
С баллами (id, score)
AS (ЗНАЧЕНИЯ
(1, 3,50),
(2, 3,65),
(3, 4,00),
(4, 3,85),
(5, 4,00),
( 6, 3.65))
-- самообъединение по неравенству создает таблицу с одной оценкой и всеми присоединенными к ней оценками, группируя по первому идентификатору и оценке и подсчитывая все уникальные значения объединенных оценок, дает эквивалент of DENSE_RANK() [проверьте вывод объединения, чтобы понять] SELECT
s1. score,
COUNT(DISTINCT s2.score) AS score_rank
FROM scores s1
JOIN scores s2
ON s1.score <= s2.score
ГРУППИРОВАТЬ ПО s1.id, s1.score
ORDER BY 1 DESC14. Совокупная сумма заработной платы
В следующей таблице содержится информация о ежемесячной заработной плате нескольких сотрудников. Напишите запрос, чтобы получить за каждый месяц совокупную сумму заработной платы сотрудника за период в 3 месяца, исключая самый последний месяц. Результат должен быть упорядочен по возрастанию идентификатора сотрудника и месяца. Из LeetCode.
С сотрудником (id, pay_month, зарплата)
AS (ЗНАЧЕНИЯ
(1, 1, 20),
(2, 1, 20),
(1, 2, 30),
(2, 2, 30) ,
(3, 2, 40),
(1, 3, 40),
(3, 3, 60),
(1, 4, 60),
(3, 4, 70)),
- - добавить столбец для убывающего ранга месяца (последний месяц = 1) для каждого сотрудника t1 AS (
SELECT *,
RANK() OVER (PARTITION BY id ORDER BY pay_month DESC) AS month_rank
FROM сотрудника) -- фильтр для исключения последний месяц и месяцы 5+, создайте кумулятивную сумму заработной платы, используя SUM() в качестве оконной функции, упорядочивая по идентификатору и месяцу ВЫБЕРИТЕ
id,
pay_month,
оклад,
СУММА (зарплата) ПРЕВЫШЕН (РАЗДЕЛЕНИЕ ПО id ПОРЯДОК ПО month_rank DESC) КАК кумулятивная_сумма
ОТ t1
ГДЕ month_rank != 1
AND month_rank 7 90 0, DER
ORDER
15.
Турнирное положение командНапишите запрос, чтобы получить очки каждой команды в таблице команд после всех матчей, отображаемых в таблице матчей. Очки начисляются следующим образом: ноль очков за поражение, одно очко за ничью и три очка за победу. Результат должен включать название команды и очки и упорядочен по убыванию очков. В случае ничьей сортируйте по названию команды в алфавитном порядке.
С командами (team_id, team_name)
AS (ЗНАЧЕНИЯ
(1, «Нью-Йорк»),
(2, «Атланта»),
(3, «Чикаго»),
(4, «Торонто»),
(5, 'Лос-Анджелес'),
(6, 'Сиэтл')), матчи (match_id, host_team, guest_team, host_goals, guest_goals)
AS (ЗНАЧЕНИЯ
(1, 1, 2, 3, 0),
(2, 2, 3, 2, 4),
(3, 3, 4, 4, 3),
(4, 4, 5, 1, 1),
(5, 5, 6, 2, 1) ,
(6, 6, 1, 1, 2)),
-- добавьте столбцы очков организатора и гостя в таблицу матчей, используя случай-когда-тогда для подсчета очков за победы, ничьи и поражения T1 AS (
SELECT
*,
случаев, когда host_goals> guest_goals, затем 3
, когда host_goals = guest_goals, затем 1
els AS guest_points
FROM match ) -- объединить результат в таблицу команд дважды, чтобы суммировать для каждой команды очки, заработанные как принимающая команда и гостевая команда, затем заказать в соответствии с запросом SELECT
t. team_name,
a.host_points + b.guest_points КАК total_points
ОТ команд t
ПРИСОЕДИНЯЙТЕСЬ к t1 a
ПО t.team_id = a.host_team
ПРИСОЕДИНЯЙТЕСЬ к t1 b
ПО t.team_id = b.guest_team
ЗАКАЗАТЬ ПО 2 DESC, 116. Клиенты, не купившие товар 9000
Из следующей таблицы напишите запрос для отображения идентификатора и имени клиентов, купивших продукты A и B, но не купивших продукт C, в порядке возрастания идентификаторов клиентов.
С клиентами (идентификатор, имя)
КАК (ЗНАЧЕНИЯ
(1, «Даниэль»),
(2, «Диана»),
(3, «Элизабет»),
(4, «Джон»)), заказы (order_id, customer_id, product_name)
AS (ЗНАЧЕНИЯ
(1, 1, 'A'),
(2, 1, 'B'),
(3, 2, 'A'),
(4, 2, 'B'),
( 5, 2, «В»),
(6, 3, «А»),
(7, 3, «А»),
(8, 3, «Б»),
(9, 3, «Г») '))
-- объединить таблицы клиентов и заказов по идентификатору клиента, отфильтровать тех, кто купил оба продукта A и B, удалить тех, кто купил продукт C, вернуть столбцы идентификаторов и имен, упорядоченные по возрастанию идентификатора SELECT DISTINCT
id,
имя
ИЗ заказов o
ПРИСОЕДИНЯЙТЕСЬ к клиентам c
ПО o. customer_id = c.id
ГДЕ customer_id В (ВЫБЕРИТЕ customer_id
ИЗ заказов
ГДЕ product_name = 'A')
И customer_id В (ВЫБЕРИТЕ customer_id
ИЗ заказов
ГДЕ product_name = 'B')
И customer_id НЕ В (ВЫБЕРИТЕ customer_id
ИЗ заказов
ГДЕ product_name = 'C')
ORDER BY 117. Медианная широта (жесткая)
Напишите запрос, чтобы вернуть медианную широту метеостанций для каждого штата в следующей таблице, округлив до десятых долей градуса. Обратите внимание, что в SQL нет функции MEDIAN()! Из ХакерРанка.
СО станциями (id, город, штат, широта, долгота)0par
AS (ЗНАЧЕНИЯ
(1, 'Эшвилл', 'Северная Каролина', 35.6, 82.6),
(2, 'Берлингтон', 'Северная Каролина', 36.1, 79.4),
(3, «Чапел-Хилл», «Северная Каролина», 35.9, 79.1),
(4, «Дэвидсон», «Северная Каролина», 35.5, 80.8),
(5, «Элизабет-Сити» , 'Северная Каролина', 36.3, 76.3),
(6, 'Фарго', 'Северная Дакота', 46.9, 96.8),
(7, 'Гранд-Форкс', 'Северная Дакота', 47. 9, 97.0),
( 8, 'Хеттингер', 'Северная Дакота', 46.0, 102.6),
(9, 'Inkster', 'Северная Дакота', 48.2, 97.6)),
-- назначить номера строк в порядке широты для каждого штата и получить общее количество строк для каждого штата t1 AS (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY state ORDER BY latitude ASC) AS row_number_state,
count(*) OVER (PARTITION BY state) AS row_count
FROM station ) -- фильтровать по средней строке (для нечетного общего количества строк) или по середине две строки (для четного общего количества строк), затем получите среднее значение из них, сгруппировав по состоянию ВЫБЕРИТЕ
штат,
AVG(широта) AS median_latitude
FROM t1
ГДЕ row_number_state >= 1.0*row_count/2
AND row_number_state <= 1.0*row_count/2 + 1
GROUP BY 1Из той же таблицы в ответе на вопрос 17 напишите запрос, возвращающий самую удаленную пару городов для каждого штата и соответствующее расстояние (в градусах, округленное до 2 знаков после запятой) между этими двумя городами. Из ХакерРанка.
СО станций (id, город, штат, широта, долгота)
AS (ЗНАЧЕНИЯ
(1, «Эшвилл», «Северная Каролина», 35,6, 82,6),
(2, «Берлингтон», «Северная Каролина», 36,1, 79,4),
(3, «Чапел-Хилл», « Северная Каролина», 35,9, 79,1),
(4, «Дэвидсон», «Северная Каролина», 35,5, 80,8),
(5, «Элизабет-Сити», «Северная Каролина», 36,3, 76,3),
(6, «Фарго», «Северная Дакота», 46,9, 96,8),
(7, «Гранд-Форкс», «Северная Дакота», 47,9, 97,0),
(8, «Хеттингер», «Северная Дакота», 46,0, 102,6) ,
(9, «Инкстер», «Северная Дакота», 48.2, 97.6)),
-- самообъединение при совпадении штатов и города < города (избегает идентичных и дважды учитываемых пар городов), состояния извлечения, пары городов и координат широты/долготы для каждого города t1 AS (
SELECT
s1.state,
s1.city AS city1,
s2.city AS city2,
s1.latitude AS city1_lat,
s1.longitude AS city1_long,
s2.latitude AS city2_lat,
s2. longitude AS city2_long
ОТ станций s1
ОБЪЕДИНИТЬ станции s2
ON s1.state = s2.state
И s1.city < s2.city ), 90.5, 2) AS Distance
FROM t1 ), -- ранжировать каждую пару городов по убыванию расстояния для каждого штата ) -- вернуть пару городов с максимальным разделением SELECT
state,
city1,
city2,
Distance
FROM t3
WHERE dist_rank = 119. Cycle time
Напишите запрос для возврата среднего времени цикла каждый месяц. Время цикла — это время, прошедшее между присоединением одного пользователя и присоединением приглашенных им лиц. Пользователи, которые присоединились без приглашения, имеют ноль в столбце «приглашенные».
С пользователями (user_id, join_date, Invited_by)
AS (ЗНАЧЕНИЯ
(1, CAST('01-01-20' дата AS), 0),
(2, CAST('01-10-20' AS дата ), 1),
(3, CAST('02-05-20' дата AS), 2),
(4, CAST('02-12-20' дата AS), 3),
(5, CAST ('02-25-20' дата AS), 2),
(6, CAST('03-01-20' дата AS), 0),
(7, CAST('03-01-20' дата AS), 0),
(7, CAST('03-01-20' дата AS ), 4),
(8, CAST('03-04-20' AS date), 7)),
-- самостоятельное присоединение по приглашению = ID пользователя, извлечь месяц присоединения из даты пригласившего и вычислить время цикла как разница между датами присоединения приглашающего и приглашенного t1 AS (
SELECT
CAST(ИЗВЛЕЧЕНИЕ(МЕСЯЦ ИЗ u2. join_date) AS int) AS месяц,
u1.join_date - u2.join_date AS cycle_time
ОТ пользователей u1
ПРИСОЕДИНЯЙТЕСЬ к пользователям u2
ON u1.invited_by = u2.user_id ) -- сгруппировать по месяцу соединения, взять среднее время цикла в каждом месяце В таблице посещаемости регистрируется количество людей, подсчитываемых в толпе каждый день, когда проводится мероприятие. Напишите запрос, чтобы вернуть таблицу, показывающую дату и количество посетителей в периоды высокой посещаемости, определяемые как три последовательные записи (не обязательно последовательные даты) с более чем 100 посетителями. Из LeetCode.С посещаемостью (event_date, посетители)
AS (ЗНАЧЕНИЯ
(CAST('01-01-20' AS date), 10),
(CAST('01-04-20' AS date), 109),
(CAST('01-05-20' дата AS), 150),
(CAST('01-06-20' дата AS), 99),
(CAST('01-07-20' дата AS), 145),
(CAST('01-08-20' дата AS), 1455),
(CAST('01-11-20' дата AS), 199),
(CAST('01-12-20' AS date), 188)),
-- добавить номера строк, чтобы идентифицировать последовательные записи, поскольку в столбце даты есть пробелы t1 AS (
SELECT *,
ROW_NUMBER() OVER (ORDER BY event_date) AS day_num
ОТ посещаемости), -- отфильтровать это, чтобы исключить дни с > 100 посетителями -соединение (внутреннее) дважды по смещению = 1 день и смещению = 2 дня t3 AS (
SELECT
a. day_num AS day1,
b.day_num AS day2,
c.day_num AS day3
FROM t2 a
JOIN t2 b
ON a.day_num = b.day_num - 1
JOIN t2 c
ON a.day_num = c.day_num - 2 ) -- дата извлечения и количество посетителей за последовательные дни из предыдущей таблицы ВЫБЕРИТЕ день3 ИЗ t3)21. Обычно покупаемые вместе
Используя следующие две таблицы, напишите запрос, чтобы вернуть названия и частоту покупок трех самых популярных пар товаров, которые чаще всего покупают вместе. Названия обоих продуктов должны появиться в одной колонке. Источник.
С заказами (order_id, customer_id, product_id)t2 AS (
AS (ЗНАЧЕНИЯ
(1, 1, 1),
(1, 1, 2),
(1, 1, 3),
(2, 2, 1) ,
(2, 2, 2),
(2, 2, 4),
(3, 1, 5)),товары (id, имя)
AS (ЗНАЧЕНИЯ
(1, 'A'),
( 2, 'B'),
(3, 'C'),
(4, 'D'),
(5, 'E')),
-- получайте уникальные пары товаров из одного заказа путем самостоятельного объединения таблица заказов по идентификатору заказа и идентификатору продукта < идентификатору продукта (избегает идентичных пар продуктов с двойным подсчетом) t1 AS (
ВЫБРАТЬ
o1. product_id КАК prod_1,
o2.product_id КАК prod_2
ИЗ заказов o1
СОЕДИНИТЬ заказы o2
ON o1.order_id = o2.order_id
И o1.product_id < o2.product_id 3), --5 присоедините к ней таблицу продуктов, чтобы получить названия продуктов, объедините, чтобы получить пары продуктов в одном столбце
SELECT CONCAT(p1.name, ' ', p2.name) AS product_pair
FROM t1
JOIN products p1
ON t1. prod_1 = p1.id
ОБЪЕДИНИТЬ продукты p2
ON t1.prod_2 = p2.id ) -- группировка по парам продуктов, возврат первых 3 записей, отсортированных по частоте покупок hard)Из следующей таблицы, обобщающей результаты исследования, рассчитайте средний эффект лечения, а также верхнюю и нижнюю границы 95% доверительного интервала. Округлите эти числа до 3 знаков после запятой.
С исследованием (идентификатор_участника, назначение, результат)
КАК (ЗНАЧЕНИЯ
(1, 0, 0),
(2, 1, 1),
(3, 0, 1),
(4, 1, 0),
(5, 0, 1),
(6, 1, 1),
(7, 0, 0),
(8, 1, 1),
(9, 1, 1)),
-- получить средние результаты, стандартные отклонения и размеры групп для контрольная и лечебная группыконтроль AS (
SELECT
AVG(исход) AS avg_outcome,
STDDEV(исход) AS std_dev,
COUNT(*) AS group_size
FROM исследование
WHERE назначение = 0 ),лечение AS (
SELECT
AVG(результат) ) AS avg_outcome, 90,5 AS conf_int
FROM обработка t, контроль c )SELECT round(es. effect_size, 3) AS point_estimate,
round(es.effect_size - ci.conf_int, 3) AS Lower_bound,
round(es.effect_size + ci.conf_int, 3) AS upper_bound
FROM effect_size es, conf_interval ci23. Скользящая сумма оклада
В следующей таблице показана месячная зарплата сотрудника за первые девять месяцев данного года. На основе этого напишите запрос, чтобы вернуть таблицу, которая отображает для каждого месяца в первой половине года скользящую сумму заработной платы сотрудника за этот месяц и следующие два месяца, упорядоченные в хронологическом порядке.
С оклад (месяц, оклад)
КАК (ЗНАЧЕНИЯ
(1, 2000),
(2, 3000),
(3, 5000),
(4, 4000),
(5, 2000),
( 6, 1000),
(7, 2000),
(8, 4000),
(9, 5000))
-- самообъединение для сопоставления месяца n с месяцами n, n+1 и n+2, затем суммировать зарплату за эти месяцы, отфильтровать по первому полугодию и отсортироватьSELECT
s1.month,
SUM(s2. salary) AS зарплата_3mos
FROM зарплаты s1
JOIN зарплаты s2
ON s1.month <= s2.month
AND s1 .месяц > s2.месяц - 3
СГРУППИРОВАТЬ ПО 1
ИМЕТЬ s1.month < 7
ЗАКАЗАТЬ ПО 124. Коэффициент отмены такси
Из заданных таблиц поездок и пользователей для службы такси напишите запрос для возврата коэффициента отмены в первые два дня в Октябрь, с округлением до двух знаков после запятой, для поездок без запрещенных гонщиков или водителей. Из LeetCode.
С поездками (trip_id, rider_id, driver_id, status, request_date)
AS (ЗНАЧЕНИЯ
(1, 1, 10, «завершено», CAST («2020-10-01» дата AS)),
(2, 2 , 11, 'cancelled_by_driver', CAST('2020-10-01' дата AS)),
(3, 3, 12, «завершено», CAST («2020-10-01» дата AS)),
(4, 4, 10, «cancelled_by_rider», CAST («2020-10-02» AS дата) ),
(5, 1, 11, «завершено», CAST («2020-10-02» дата AS)),
(6, 2, 12, «завершено», CAST («2020-10-02» AS дата)),
(6, 2, 12, «завершено» дата)),
(7, 3, 11, 'завершено', CAST('2020-10-03' КАК дата))), пользователи (user_id, забанен, тип)
AS (ЗНАЧЕНИЯ
(1, 'нет' , 'райдер'),
(2, 'да', 'райдер'),
(3, 'нет', 'райдер'),
(4, 'нет', 'райдер'),
(10, ' нет», «водитель»),
(11, «нет», «водитель»),
(12, 'нет', 'водитель'))
-- отфильтровать таблицу поездок, чтобы исключить запрещенных пассажиров и водителей, затем рассчитать коэффициент отмены как 1 – доля завершенных поездок, фильтрация по первым двум дням месяца
SELECT
request_date ,
1 - AVG(CASE WHEN status = 'completed' THEN 1 ELSE 0 END) AS cancel_rate
FROM trips
WHERE rider_id NOT IN (SELECT user_id
FROM users
WHERE Baned = 'yes' )
AND driver_id NOT IN (SELECT user_id
ОТ пользователей
ГДЕ забанен = 'да' )
GROUP BY 1
HAVING EXTRACT(DAY FROM request_date) <= 225.
Кривая удержания (жесткая)Из следующей таблицы активности пользователей напишите запрос, чтобы вернуть долю пользователей, которые остались (показать некоторую активность) определенное количество дней после присоединения. По соглашению пользователи считаются активными в день их присоединения (день 0).
С пользователями (user_id, action_date, action)
AS (ЗНАЧЕНИЯ
(1, CAST('01-01-20' AS date), 'Присоединиться'),
(1, CAST('01-02-20' дата AS), «Доступ»),
(2, CAST('01-02-20' дата AS), 'Присоединиться'),
(3, CAST('01-02-20' дата AS), 'Присоединиться'),
(1, CAST( '01-03-20' Дата AS), 'Доступ'),
(3, CAST('01-03-20' Дата AS), 'Доступ'),
(1, CAST('01-04-20 ' AS date), 'Доступ')),
-- получить даты присоединения для каждого пользователя join_dates AS (
SELECT
user_id,
action_date AS join_date
ОТ пользователей
ГДЕ action = 'Присоединиться' ), -- создать вектор, содержащий все даты в диапазоне дат date_vector AS (
SELECT CAST(GENERATE_SERIES(MIN(action_date), MAX(action_date),
'1 день'::интервал) КАК дата) КАК даты
ОТ пользователей ), -- перекрестное соединение для получения всех возможных комбинаций пользователей и дат CROSS JOIN date_vector d ), -- левая таблица пользователей для присоединения ко всем комбинациям пользователей и дат при совпадении идентификатора пользователя и даты (нуль для дней, когда пользователь не участвовал), присоединиться к этой дате регистрации каждого пользователя, исключить комбинации пользователей и дат падение до регистрации пользователя t1 AS (
ВЫБЕРИТЕ
a. dates - c.join_date AS day_no,
b.user_id
FROM all_users_dates a
ЛЕВЫЙ ПРИСОЕДИНЯЙТЕСЬ пользователей b
ON a.user_id = b.user_id
И a.dates = b.action_date
ПРИСОЕДИНЯЙТЕСЬ join_dates c
ON a.user_id = c.user_id
ГДЕ a.dates - c.join_date >= 0 ) -- группировка по дням с момента регистрации, подсчет (ненулевых) идентификаторов пользователей как активных пользователей, общее количество пользователей и коэффициент удержания ВЫБЕРИТЕ
day_no,
COUNT(*) AS n_total,
COUNT(DISTINCT user_id) AS n_active,
ROUND(1.0*COUNT(DISTINCT user_id)/COUNT(*), 2) Удержание AS
FROM t1
GROUP BY 1Примечание об одной распространенной проблеме: если вы видите синтаксическую ошибку при использовании CTE, убедитесь, что у вас есть запятые между CTE и отсутствие запятой после последнего CTE.
WITH input_table (column_1, column_2)
AS (ЗНАЧЕНИЯ
(1, 'A'), (2, 'B')), -- запятая между CTEst1 AS (
SELECT *
FROM input_table
WHERE column_2 = 'A ') -- без запятой после последнего CTESELECT *
FROM t117 сайтов для практики SQL
Вы ищете места для онлайн-практики SQL? Этот список содержит множество различных веб-сайтов, на которых есть функции для практики SQL.
Веб-сайты для практики SQL
Каждый из этих веб-сайтов позволяет вам практиковать SQL-запросы к базе данных. Некоторые из них представляют собой простое текстовое поле, в котором вы вводите запрос SQL SELECT к предопределенной базе данных, а другие позволяют создавать таблицы и данные, соответствующие запросам.
Чтобы быть добавленным в этот список, должен быть интерактивный компонент или способ ввести SQL и увидеть результат. Сайты, которые показывают только практические вопросы или способ загрузки базы данных, не входят в этот список.
Давайте взглянем на список.
SQLZoo
Веб-сайт
SQLZoo — популярный сайт для практики SQL. Он содержит большое количество практических упражнений, от простых операторов SELECT до более сложных запросов.
На каждой странице есть образец набора данных и несколько вопросов. Вы можете ввести SQL, который, по вашему мнению, необходим, чтобы дать запрашиваемый ответ, отправить SQL и увидеть результат. Он также указывает, является ли результат правильным или нет.
SQL Fiddle
Веб-сайт
SQL Fiddle — популярный сайт для быстрого создания образцов баз данных и написания на них кода SQL. Его также можно использовать для практики SQL. Пользователи StackOverflow часто создают образцы данных, потому что наборы данных сохраняются в SQLFiddle, и вы можете создать ссылку на этот набор данных.
Есть три панели:
- схема, для создания и заполнения ваших таблиц
- запрос, для написания запросов SELECT
- результатов, для просмотра результатов запроса
Еще одна замечательная особенность SQL Fiddle заключается в том, что он поддерживает различные версии SQL. По состоянию на сентябрь 2020 года вы можете писать SQL для:
- MySQL 5.6
- Oracle 11g R2
- PostgreSQL 9.6 и 9.3
- SQLite
- MS SQL Server 2017
DB-Fiddle
Веб-сайт
DB-Fiddle — один из двух сайтов под названием «DB Fiddle». Этот похож на другие скрипки тем, что позволяет создавать таблицы, вставлять данные и выполнять запросы.
Вы можете войти в систему, чтобы создать учетную запись, сохранить свои скрипки и сделать их общедоступными или частными.
Поддерживает различные версии SQL:
- MySQL 5.5, 5.6, 5.7, 8.0
- PostgreSQL 9.4, 9.5, 9.6, 10.0, 11, 12, 13 бета
- SQLite 3.26, 3.30
Таким образом, хотя он не поддерживает Oracle или SQL Server, версии MySQL и PostgreSQL новее, чем SQL Fiddle.
DB
<>FiddleВеб-сайт
Этот сайт является еще одним «скрипичным» сайтом, где вы можете ввести свои примеры запросов и запустить их, чтобы увидеть результаты.
У него есть функция образца базы данных, которая показывает AdventureWorks для SQL Server, и есть много других поддерживаемых версий SQL:
- DB2: Developer-C 11.1
- Жар-птица: 3.0
- МарияДБ: 10.3, 10.4, 10.5
- MySQL: 5. 5, 5.6, 5.7, 8.0
- Оракул: 11g R2, 18c
- PostgreSQL: 9.5, 9.6, 10, 11, 12, 13 бета
- SQLite 3.27
- SQL Server: 2014, 2016, 2017, 2019
HackerRank
Веб-сайт
HackerRank — это сайт, который позволяет вам практиковать свои навыки на многих различных языках, и одним из доступных языков является SQL.
На сайте представлено множество различных задач SQL, и для каждой из них есть образец набора данных, вопрос, на который нужно ответить с помощью SQL, список представленных работ, таблица лидеров и обсуждения.
Упражнения разбиты по сложности, и вы можете писать SQL в DB2, MySQL, Oracle и SQL Server.
SQL Bolt
Веб-сайт
SQL Bolt — это сайт, который обучает SQL, а также содержит несколько упражнений по каждой концепции. В конце каждой страницы приведен пример набора данных и несколько вопросов, на которые вы можете ответить, используя SQL.
Хотя он не обладает такой гибкостью, как онлайн-редактор, такой как SQLFiddle, он объясняет концепции и включает полезные практические упражнения по SQL. Это популярный ресурс для практики.
Oracle Live SQL
Веб-сайт
Oracle Live SQL — это инструмент, созданный Oracle, который позволяет писать и запускать код SQL для онлайновой базы данных Oracle. Вы можете написать код для создания и заполнения таблиц и выбора данных из них. Это удобный способ попрактиковаться в SQL, специфичном для Oracle, онлайн.
Он также включает несколько полезных сценариев в качестве ресурсов в разделе библиотеки кода и несколько руководств по улучшению вашего SQL.
Я часто использую его, когда мне нужен быстрый способ протестировать код в Oracle.
W3Schools
Веб-сайт
W3Schools — это веб-сайт для изучения ряда концепций программирования, включая SQL. Они предлагают функцию практики SQL с использованием упражнений, где вы заполняете пробелы для написания запросов.
Он не такой полнофункциональный, как некоторые другие примеры здесь, так как в нем нет редактора SQL, но он может помочь вам улучшить свой SQL, выполняя запросы.
W3Resource
Веб-сайт
W3Resource — это веб-сайт, который обучает нескольким концепциям программирования. Они включают учебные пособия по SQL и множество упражнений по SQL.
Каждое упражнение работает с образцом набора данных и включает редактор SQL, который представляет собой просто текстовое поле с кнопкой «Отправить». Упражнения включают решение, которое показывает правильный запрос и результат.
Сайт кажется полезным, но структура и навигация меня немного смущают.
Обозреватель данных StackOverflow
Веб-сайт
StackOverflow предлагает инструмент под названием Data Explorer. Это раздел их сайта, который позволяет вам писать и выполнять запросы к их базе данных, которая включает в себя таблицы для сообщений, голосов, тегов и многого другого.
Существует множество сохраненных запросов, позволяющих просматривать информацию о данных во многих областях StackOverflow. Вы также можете написать свои собственные запросы.
Это полезно, поскольку использует большую базу данных примеров.
Coding Ground by Tutorials Point
Веб-сайт
Веб-сайт Tutorials Point предлагает инструмент под названием Coding Ground, который позволяет выполнять SQL в режиме онлайн. Он похож на SQL Fiddle и DB Fiddle, где есть редактор SQL и панель результатов.
Похоже, что поддерживается только SQLite, но этого должно быть достаточно для базового стандартного SQL. Вы можете создавать и сохранять проекты, редактировать тему, а также изменять размер шрифта страницы. Если вы создадите учетную запись, вы сможете поделиться своим кодом SQL с другими.
Курс SQL
Веб-сайт
SQLCourse — это сайт с учебным пособием по SQL, которое включает несколько упражнений в конце каждой страницы. Это похоже на SQL Bolt, но интерфейс не такой приятный и на странице есть несколько объявлений.
Редактор SQL представляет собой простое текстовое поле в конце страницы, и ввод неверного оператора даст вам расплывчатое сообщение об ошибке. Это полезно, но здесь есть и другие сайты получше.
Технология в сети
Веб-сайт
Tech on the Net — это полезный сайт для изучения многих концепций программирования, включая SQL, и он содержит несколько практических упражнений.
Каждое упражнение включает образец базы данных с ERD, вопрос для решения и редактор, который позволяет вам вводить SQL и запускать его, чтобы увидеть результаты. Это кажется довольно простым в использовании.
SQL-ex
Веб-сайт
На этом российском сайте есть несколько руководств по изучению SQL, а также ряд упражнений. Чтобы получить доступ к упражнениям, вам необходимо создать бесплатную учетную запись. Как только вы войдете, вы сможете увидеть упражнение, примеры данных и написать SQL-запросы для решения вопросов.
Вы также можете увидеть результаты и таблицу лидеров по всем вопросам на сайте. У него есть несколько хороших функций, но на сайте довольно много рекламы.
Rextester
Веб-сайт
Rextester — это простой на вид сайт, позволяющий писать и запускать код SQL. Вы можете запускать код на многих языках, включая следующие языки SQL:
- MySQL 5.7.12
- Оракул: 18c
- PostgreSQL: 9.6
Вы можете запустить код SQL и увидеть результаты внизу страницы.
SQLize
Веб-сайт
SQLize — это простой сайт, который позволяет запускать запросы MySQL и просматривать результаты.
Есть некоторые ограничения, например, не более 20 строк, но пользоваться им довольно просто. Вам также разрешено создавать только временные таблицы, а не настоящие таблицы, из-за того, как это спроектировано.
Тест SQL
Веб-сайт
SQLTest — это онлайн-инструмент для практики SQL, который позволяет создавать таблицы, заполнять таблицы, писать к ним SQL-запросы и просматривать результаты.
Поддерживает несколько версий SQL:
- Oracle: 11g
- MySQL: 5.1
- SQL-сервер: 2019
Это также позволяет вам выбрать пример кода, который автоматически заполняет редактор запросов, например, выбор максимального значения.
Заключение
Вот список ресурсов с вопросами и инструментами для практики SQL. Некоторые из них представляют собой полноценные редакторы, позволяющие создавать объекты и выполнять запросы, в то время как в других есть только окно редактора SQL с некоторыми практическими вопросами. Использование их комбинации действительно может помочь вам улучшить свои навыки SQL.
Онлайн-тест SQL | TestDome
Ознакомьтесь с нашими общедоступными вопросами ниже
Решите вопросы, чтобы получить обратную связь, или
пройдите практический тест и получите бесплатный сертификат.Экран с рабочими примерами вопросов
Рабочие образцы являются лучшим показателем эффективности работы. Более 8000 компаний используют премиум-вопросы TestDome.
О тесте
Онлайн-тест SQL оценивает навыки SQL, используя задачи живого кодирования, которые требуют написания операций CRUD для извлечения, объединения и обработки данных. Запросы SQL могут выполняться в базах данных MySQL, MS SQL или SQLite.
Оценка включает в себя решение рабочих задач, таких как:
- Написание запросов и подзапросов, которые объединяют, группируют, фильтруют и объединяют данные.
- Создание новых таблиц базы данных с правильной схемой таблиц и ограничениями.
- Исправление ошибок в существующих SQL-запросах и настройка производительности.
Хорошему администратору базы данных, разработчику серверной части или аналитику данных требуется хорошее понимание SQL для эффективного взаимодействия и доступа к базе данных SQL.
Примеры общедоступных вопросов
Сеансы
Общедоступные
SQL
Агрегирование
Группировка по
Выбор
Данные об использовании приложений хранятся в следующей таблице:
05 ТАБЛИЦА 9 id ЦЕЛОЕ ПЕРВИЧНЫЙ КЛЮЧ, идентификатор пользователя INTEGER NOT NULL, продолжительность DECIMAL NOT NULLНапишите запрос, который выбирает идентификатор пользователя и среднюю продолжительность сеанса для каждого пользователя, имеющего более одного сеанса.
Подробнее см. в примере.
Решить вопрос
Рабочие
Общедоступные
SQL
Условия
Выбрать
Подзапросы
Следующее определение данных определяет иерархию сотрудников организации.
Сотрудник является менеджером, если для любого другого сотрудника managerId установлен на идентификатор этого сотрудника . Это означает, что Джон является менеджером, если хотя бы у одного другого сотрудника его managerId установлен на 9 Джона.0093 идентификатор
.ТАБЛИЦА сотрудников id INTEGER NOT NULL ПЕРВИЧНЫЙ КЛЮЧ ИД менеджера INTEGER имя VARCHAR(30) НЕ NULL ВНЕШНИЙ КЛЮЧ (managerId) ССЫЛКИ сотрудников (id)Напишите запрос, который выбирает только имена сотрудников, не являющихся руководителями.
Подробнее см. в примере.
Решить вопрос
Посмотреть все общедоступные вопросыДля соискателей: получить сертификат
Получите бесплатный сертификат, набрав 25% лучших результатов в тесте SQL с общедоступными вопросами.
Пройти сертификационный тестОбразец серебряного сертификата
Sunshine Caprio
Java и SQL
TestDome
Посмотреть сертификат практиковаться.
Сертификат
Верните деньги, если найдете ответ на какой-либо премиальный вопрос в Интернете. Зарегистрируйтесь, чтобы предложить этот тестЕще 40 дополнительных вопросов SQL
Дороги, Авторы, Автозаполнение, Банковские отделения, Самый дешевый продукт, Страны, Разработчики, Больничные пациенты, Индекс производительности, Пункты меню, Фильмы, Проекты, Прямоугольники, Меню ресторана, Пенсионеры, СМС-сообщения, Опрос, Пользователи и учетные записи, Подходящая одежда, Агенты, Продажи, Менеджер по персоналу, Автошоу, Удаление заказов, Социальная организация, Задачи, Менеджер по продажам, Рейтинги студентов, Студенческие мероприятия, Младший ребенок, Прямые трансляции фильмов, Отчет отдела, Ингредиенты, Средняя зарплата, Жанры фильмов, Речной сток, Расположение банкоматов, Транзакции, слияние фондовых индексов, бан пользователей.
Skills and topics tested
- SQL
- Conditions
- Views
- Select
- Create Index
- Database Schema
- Performance Tuning
- Constraints
- Create Table
- Aggregation
- Subqueries
- Ordering
- Bug Исправление
- Индексы
- Изменить таблицу
- Группировать по
- Обновление
- Вставить
- Joins
- Left Join
- Right Join
- Delete
- SQL CASE
- Union
- CTE
- Database Normalization
For job roles
- Data Analyst
- Database Administrator
- SQL Developer
Образец отчета кандидата
Что говорят другие
Простое, понятное техническое тестирование
TestDome прост, предоставляет разумный (хотя и не обширный) набор тестов на выбор и не требует от кандидата чрезмерного количества времени . Он также имитирует рабочее давление с ограничениями по времени.
Ян Опперман, Grindrod Bank
Обзоры продуктов
Используется
Решите все ваши задачи по тестированию навыков
Более 150 готовых тестов
От веб-разработки и администрирования баз данных до управления проектами и поддержки клиентов. Посмотреть все готовые тесты.
90+ навыков
От JavaScript и SQL до английского языка и поддержки клиентов. Просмотреть все вопросы для фильтрации по навыкам.
Тест на несколько навыков
Смешайте вопросы для разных навыков или даже специальные вопросы в одном тесте. См. пример.
Как работает TestDome
1
Выберите предварительно сделанный тест
или создайте пользовательский тест2
Приглашения кандидатов по
Email, URL или ваш ATS3
Кандидаты.
4
Сортировка кандидатов и
получение индивидуальных отчетовХотите узнать больше?
Характеристики
Цены
Не совсем то, что вы ищете?
Related SQL Programming Tests:
- JavaScript and SQL
- Java Algorithms and SQL
- Java and SQL
- PHP and SQL
- Ruby and SQL
- C++ Algorithms and SQL
- C++ и SQL
- Алгоритмы Python и SQL
- Python и SQL
- Scala и SQL
- Алгоритмы C# и SQL
- C# and SQL
- Oracle PL/SQL and SQL
- MySQL and SQL
- VB.NET and SQL
- General Data Science and SQL
- MS SQL Server and SQL
- Администрирование баз данных и SQL
- Хранилище данных и SQL
5 лучших веб-сайтов для изучения SQL онлайн бесплатно
SQL является одним из самых важных навыков для любого программиста, будь то Java, C++, Python, JavaScript или Ruby-разработчик. Почти 95% приложений Java используют реляционную базу данных в своей серверной части, и почти все веб-приложения используют базу данных. В последние годы одним из наиболее распространенных способов изучения любого навыка программирования является онлайн, в удобном для вас офисе или дома, и SQL не является исключением. Изучение SQL онлайн имеет еще одно преимущество быстрого старта, поскольку вам не нужно устанавливать базу данных и создавать таблицы для написания некоторых запросов SELECT. Установка и настройка, безусловно, сложная часть для новичков, и я проходил через эту боль каждый раз, когда мне приходилось изучать новую базу данных.
В любом случае, как только вы начнете писать запросы и увидите результат, вы почувствуете, что необходима уверенность, чтобы перейти на следующий уровень, который включает в себя загрузку и установку бесплатной копии популярных баз данных, таких как MySQL, SQL Server или Oracle, на вашем компьютере.
Исходя из своего опыта, я могу сказать, что SQL легко выучить, но трудно освоить. Вы можете начать писать SQL-запросы примерно через час или около того, но когда дело доходит до написания запросов для выполнения требований в реальном времени или для создания отчетов, это не так просто.
Практика SQL в Интернете на таких сайтах, как SQLZoo или SQLFiddle, также поможет вам быть в курсе последних событий и продолжать совершенствовать свои навыки SQL, что является основной задачей для любого разработчика или программиста SQL.
Вот моя коллекция из пяти лучших веб-сайтов, которые я считаю полезными для изучения и освоения SQL. В Интернете есть много веб-сайтов, блогов и учебных пособий, но в то же время трудно найти отличные ресурсы.
Поскольку я страстно желаю собирать хорошие ресурсы для изучения технологий, я всегда добавляю свои великие открытия в закладки. Эти веб-сайты являются одними из них.
1. Удеми
На этом сайте собрана самая большая коллекция онлайн-курсов, как бесплатных, так и платных. Поскольку онлайн-курсы — отличный способ изучить новую технологию или язык программирования, вы также можете использовать их для изучения основ SQL и баз данных.
Тем не менее, найти правильный курс и здесь сложно, потому что курсов буквально так много, и вы не уверены, какой инструктор лучший и какой курс соответствует вашим требованиям, поэтому вам нужно смотреть предварительные просмотры, читать обзоры и решать. исходя из этого.
Если вы спросите меня, Complete SQL Bootcamp Джоша Портиллы — лучший курс для изучения SQL. Он имеет в среднем 4,5 оценки от более чем 127 000 студентов, что действительно впечатляет. Единственное, это не бесплатно, но вы можете получить его очень дешево, например, менее чем за 10 долларов на флэш-распродаже Udemy, которая происходит постоянно.
Курс также предоставляет сертификаты, подтверждающие, что вы прошли курс обучения SQL, которые вы можете добавить в свое резюме или профиль Linkedin.
Как я уже говорил, в Udemy также есть много бесплатных курсов для изучения SQL и баз данных, и ниже приведены мои рекомендации для начала.
- Введение в базы данных и SQL-запросы — оценка 4,3 от 175 000 учащихся
- Advanced Databases and SQL Query – оценка 4,3 от примерно 100 000 учащихся
- Oracle SQL — полное введение — оценка 4,5 от 25 000 студентов
- Microsoft SQL Server — введение — оценка 4,4 от 7000 учащихся
Это действительно качественные бесплатные курсы, которые вы можете пройти на Udemy, чтобы изучить основы SQL и баз данных, запросы и т. д. инструктор достигает своих рекламных целей.
Но, как только вы присоединитесь, это будет бесплатно для вас все время. Так что лучше присоединиться к ним до того, как они станут платными курсами, и учиться в удобное для вас время.
2. SQLZoo
SQLZoo — один из лучших и, я думаю, самый популярный веб-сайт для изучения SQL в Интернете. Он содержит как учебники, так и упражнения, и поэтому он одинаково полезен для тех, кто только начинает работать с SQL, и для программистов, которые знают SQL, но хотят получить хорошую практику, чтобы действительно освоить его.
SQLZoo предоставляет простые для понимания руководства и интерактивные примеры для создания запросов и просмотра результатов прямо в браузере.
На этом веб-сайте вы найдете интерактивные учебные пособия по SQL, примеры и упражнения. Он охватывает большинство предложений SQL, таких как предложение SELECT для чтения данных, CREATE для создания новой базы данных, ALTER для изменения базы данных и DELETE для удаления данных и таблиц.
Он также охватывает расширенные концепции, такие как GROUP BY, индексы, представления, соединения SQL, подзапросы, обработка значений NULL в SQL и т. д. В SQLZoo также есть несколько викторин по SQL для проверки ваших знаний.
Короче говоря, этот сайт является одним из лучших ресурсов для изучения и освоения SQL в Интернете, и это БЕСПЛАТНО. Каждый программист, интересующийся SQL, может извлечь пользу из этого сайта.
3. Курс SQL Стэнфордского университета
Это бесплатный курс SQL, предоставленный Стэнфордским университетом. Этот курс содержит хорошие видеоуроки по SQL, объясняющие как базовые, так и расширенные концепции SQL и реляционных баз данных.
Вы можете использовать этот курс как в зарегистрированном, так и в незарегистрированном режиме, хотя лучше зарегистрироваться, чтобы сохранить свой прогресс. Это также курс для самостоятельного обучения, поэтому вы можете учиться в удобном для вас темпе.
На этом веб-сайте также бесплатно предоставляются все учебные материалы, например. SQL-скрипты, слайды курса и т. д., которые можно загрузить из соответствующих разделов. Учитывая, что этот курс разработан в Стэнфордском университете, вы можете быть уверены в его качестве.
4. Курс SQL от Академии Хана
Khan Academy, один из лучших веб-сайтов для изучения информатики и программирования в Интернете, также имеет хороший учебник по SQL под названием 9.1637 «Введение в SQL: запросы к базам данных и управление ими» .
В этом руководстве вы узнаете, как использовать SQL для хранения, запроса и управления данными. SQL — это язык программирования специального назначения, предназначенный для управления данными в реляционной базе данных и используемый огромным количеством приложений и организаций.
В прошлом я пользовался некоторыми учебными пособиями Академии Хана, и это одно из них, это как виртуальный класс. Хороший компаньон SQLZoo сделает ваше исследование завершенным. Вы также можете воспользоваться помощью некоторых хороших книг по SQL, таких как Head First SQL Если вы новичок, метод head first — один из лучших способов изучения SQL.
5. SQLBolt
SQLBolt — еще один хороший веб-сайт для изучения SQL с помощью простых интерактивных примеров. Он содержит ряд интерактивных уроков и упражнений, призванных помочь вам быстро изучить SQL прямо в браузере.
Он содержит 20 уроков, начиная с простого SQL-запроса и заканчивая более сложными и запутанными запросами на соединение, агрегированием, фильтрацией и работой с нулями. Это один из лучших ресурсов для изучения SQL для начинающих.
Итак, если вы тот, кто хочет выучить SQL или вы знаете SQL, но не чувствуете себя комфортно, попробуйте интерактивные учебные пособия SQLBolt по SQL. В SQLBolt также есть задачи SQL после каждого урока, которые заставят вас использовать знания, полученные на уроке.
Качество запросов хорошее, с ними легко начать, а потом становится сложно. Если вы застряли при написании SQL-запроса для решения задачи, вы даже можете воспользоваться помощью их решения.
Я предлагаю вам закончить задание, как только вы закончите арендодателя, а затем на следующий день просто выполнить задание с некоторыми вариациями.
Это все о некоторых из лучших ресурсов для изучения SQL онлайн БЕСПЛАТНО . Хотя в Интернете полно бесплатных материалов, найти хороший ресурс сложно. Я по-прежнему уважаю кураторские ресурсы и многое извлек из них. Хотя ничто не может заменить обучение в классе, сочетание книг, блогов, видеоуроков и интерактивных веб-сайтов действительно может помочь вам в этом.
Некоторые другие БЕСПЛАТНЫЕ онлайн-ресурсы для программистов
- 10 лучших онлайн-курсов по SQL и базам данных (лучшие курсы)
- Полная дорожная карта DevOps (дорожная карта)
- 10 бесплатных курсов для изучения базы данных SQL Server (бесплатные курсы)
- Веб-сайт для онлайн-практики SQL-запросов к любой базе данных с использованием SQLFiddle (см. здесь)
- 2 веб-сайта для онлайн-обучения программированию на Java и Python (см. здесь)
- 5 лучших блогов по Java EE, на которые разработчик должен подписаться (см. здесь)
- 5 лучших веб-сайтов для БЕСПЛАТНОГО изучения Java-кодирования (веб-сайты)
- 5 лучших курсов для изучения базы данных MySQL для начинающих (курсы)
- 5 лучших форумов для разработчиков Java (см. здесь)
- 5 лучших курсов по изучению PostgreSQL для начинающих (курсы)
- 10 бесплатных книг для изучения Java (проверьте здесь)
- 10 бесплатных курсов по программированию на Java для начинающих (курсы)
- 5 бесплатных курсов по изучению Spring и Spring Boot (курсы)
- Полная дорожная карта React JS (дорожная карта)
- 5 бесплатных онлайн-курсов по изучению баз данных и SQL (курсы)
Спасибо, что прочитали эту статью. Если вам нравятся эти веб-сайтов для БЕСПЛАТНОГО изучения SQL онлайн , поделитесь ими с друзьями и коллегами. Если у вас есть какие-либо вопросы или отзывы, пожалуйста, напишите об этом.
P. S. - Если вы, как и я, знаете SQL, но всегда стремитесь расширить свои знания и любите пробовать хорошие SQL-запросы, ознакомьтесь с загадками и ответами SQL Джо Селко, второе издание . Это один из превосходных ресурсы для изучения и освоения программирования SQL.
10 лучших мест для БЕСПЛАТНОГО изучения SQL в Интернете | от javinpaul | Javarevisited
Мои любимые веб-сайты для изучения основ SQL Query и баз данных в Интернете, такие как SQLZoo, SQLBolt, Khan Academy и Udemy
image_credit — udemyЗдравствуйте, ребята, если вы хотите изучать SQL в 2021 году и ищете лучшие бесплатные ресурсы, такие как веб-сайты, книги и онлайн-курсы, вы попали в нужное место. Ранее я делился лучшими бесплатными курсами и книгами по SQL, а в этой статье я расскажу о лучших веб-сайтах и местах, где вы можете изучать SQL онлайн для меня.
SQL — один из самых важных навыков для любого программиста, будь то разработчик Java, C++, Python, JavaScript или Ruby. Почти 95% приложений Java используют реляционную базу данных в своей серверной части, и почти все веб-приложения используют базу данных.
В последние годы одним из наиболее распространенных способов изучения любого навыка программирования является онлайн, в удобном для вас офисе или дома, и SQL не является исключением. Изучение SQL онлайн имеет еще одно преимущество быстрого старта, потому что вам не нужно устанавливать базу данных и создавать таблицы для написания некоторых запросов SELECT.
Установка и настройка, безусловно, сложная часть для новичков, и я проходил через эту боль каждый раз, когда мне приходилось изучать новую базу данных.
В любом случае, когда вы начинаете писать запросы и видите результат, вы чувствуете, что необходима уверенность, чтобы перейти на следующий уровень, который включает в себя загрузку и установку бесплатной копии популярных баз данных, таких как MySQL, SQL Server, PostgreSQL или Oracle, в вашем машина.
Исходя из своего опыта, я могу сказать, что SQL легко выучить, но трудно освоить. Вы можете начать писать SQL-запросы примерно через час или около того, но когда дело доходит до написания запросов для выполнения требований в реальном времени или целей отчетности, это не так просто.
Практика SQL в Интернете на таких сайтах, как SQLZoo или SQLFiddle , также поможет вам быть в курсе последних событий и улучшить свои навыки SQL, что является основной задачей для любого разработчика или программиста SQL.
Вот моя коллекция из пяти лучших веб-сайтов, которые я считаю полезными для изучения и освоения SQL. В Интернете есть много веб-сайтов, блогов и учебных пособий, но в то же время трудно найти отличные ресурсы.
Так как я обожаю собирать хорошие ресурсы для изучения технологий, я всегда добавляю свои великие открытия в закладки. Эти веб-сайты являются одними из них, в то время как некоторые довольно распространены, такие как Udemy и Coursera, другие, такие как SQLZoo и SQLBolt, являются настоящими жемчужинами.
На этом веб-сайте собрана самая большая коллекция онлайн-курсов, как бесплатных, так и платных. Поскольку онлайн-курсы — отличный способ изучить новую технологию или язык программирования, вы также можете изучить основы SQL и баз данных.
Поиск подходящего курса также является сложной задачей, потому что курсов буквально так много, и вы не уверены, какой инструктор лучший и какой курс соответствует вашим требованиям, поэтому вам нужно смотреть предварительные просмотры, читать обзоры и принимать решения на основе при этом.
Если вы спросите меня, The Complete SQL Bootcamp Джоша Портиллы — лучший курс для изучения SQL. У него в среднем 4,5 оценки от более чем 127 000 студентов, что действительно впечатляет.
Единственное, это не бесплатно, но вы можете получить его очень дешево, например, менее чем за 10 долларов на флэш-распродаже Udemy, которая происходит постоянно. Курс также предоставляет сертификаты, указывающие на то, что вы прошли обучение SQL, добавляя их в свое резюме или профиль Linkedin.
Как я уже сказал, в Udemy также есть много бесплатных курсов для изучения SQL и баз данных, и ниже приведены мои рекомендации для начала.
- Введение в базы данных и SQL -запросы - 4,3 рейтинга от 175 000 студентов
- Дополнительные базы данных и SQL -запросы - 4,3 Оценка из примерно 100 000 студентов3 - - 40014 - 4.3. 4,5 оценки от 25 000 студентов
- Microsoft SQL Server — Введение — 4,4 оценки от 7000 студентов
Это отличные бесплатные курсы, которые вы можете пройти на Udemy для изучения основ SQL и баз данных, запросов и т. д.
Хотя вам нужно быть будьте осторожны, чтобы эти курсы не оставались бесплатными все время и могли быть преобразованы в платные курсы, как только инструктор достигнет своих рекламных целей.
Но, как только вы присоединитесь, это будет бесплатно для вас все время. Так что лучше присоединиться к ним до того, как они станут платными курсами, и учиться в удобное для вас время.
Coursera — еще одно место, где вы можете бесплатно получить востребованные технические навыки. Многие люди не знают, но у Coursera есть много бесплатных курсов, и большинство их платных курсов также бесплатны для аудита. Это лучший веб-сайт для изучения науки о данных, и здесь есть несколько полезных курсов для изучения основных навыков науки о данных, таких как SQL.
Вот некоторые из курсов Coursera, к которым вы можете присоединиться, чтобы изучать SQL БЕСПЛАТНО:
- SQL для науки о данных — самый популярный курс SQL на Coursera, к которому уже присоединились более 330 тысяч человек.
- Введение в язык структурированных запросов (SQL) — это еще один отличный курс SQL на Coursera, который предлагает Мичиганский университет. У него в среднем 4,8 рейтинга, и к нему присоединилось более 120 тысяч человек.
- Проектирование баз данных и базовый SQL в PostgreSQL — это для тех, кто хочет изучить проектирование баз данных и SQL в PostgreSQL, популярном поставщике SQL. Это относительно новый курс, но в среднем он имеет рейтинг 4,8.
- Промежуточный SQL — это еще один замечательный курс PostgreSQL от Coursera, к которому вы можете присоединиться БЕСПЛАТНО. Это больше для разработчиков среднего уровня, знакомых с PostgreSQL. Например, к этому можно присоединиться после прохождения предыдущего курса.
В целом, это одни из лучших курсов по SQL от Coursera, которые вы можете пройти, чтобы освоить этот полезный технический навык. Большинство из них либо бесплатны, либо бесплатны для аудита.
Когда дело доходит до присоединения к этому курсу, у вас есть два варианта: вы можете присоединиться только к этому курсу, стоимость которого составляет около 39 долларов США.в месяц для специализации, вы также можете присоединиться к Coursera Plus за 59 долларов в месяц, план подписки от Coursera, который дает вам неограниченный доступ к их самым популярным курсам, специализациям, профессиональным сертификатам и управляемым проектам.
Курсера Плюс | Неограниченный доступ к более чем 7000 онлайн-курсов
Инвестируйте в свои профессиональные цели с Coursera Plus. Получите неограниченный доступ к более чем 90% курсов, проектов…
coursera.pxf.io
SQLZoo — один из лучших и, наверное, самый популярный веб-сайт для онлайн-изучения SQL. Он содержит как учебные пособия, так и упражнения, и поэтому он одинаково полезен для тех, кто только начинает работать с SQL, и для программистов, которые знают SQL, но хотят получить хорошую практику, чтобы действительно освоить его.
SQLZoo предоставляет простые для понимания руководства и интерактивные примеры для написания запросов и просмотра результатов прямо в браузере.
На этом веб-сайте вы найдете интерактивные учебные пособия по SQL, примеры и упражнения. Он охватывает большинство предложений SQL, таких как предложение SELECT для чтения данных, CREATE для создания новой базы данных, ALTER для изменения базы данных и DELETE для удаления данных и таблиц.
Он также охватывает расширенные концепции, такие как GROUP BY, индексы, представления, соединения SQL, подзапросы, обработка значений NULL в SQL и т. д. В SQLZoo также есть несколько викторин по SQL для проверки ваших знаний.
Короче говоря, этот сайт является одним из лучших ресурсов для изучения и освоения SQL в Интернете, и это БЕСПЛАТНО. Каждый программист, интересующийся SQL, может извлечь пользу из этого сайта.
Это еще одно отличное место или веб-сайт для БЕСПЛАТНОГО изучения SQL. Codecademy был одним из первых интерактивных веб-сайтов, о которых я узнал, и с тех пор я научился многим ключевым навыкам, таким как Linux bash, SQL, Java и JavaScript, на Codecademy.
Опять же, большинство их курсов бесплатны, но не все из них, и вам нужно членство в Codecademy PRO , чтобы получить доступ к их премиальным курсам.
В этом бесплатном курсе SQL вы узнаете, как взаимодействовать с реляционными базами данных через SQL. Вы не только узнаете, но и попрактикуетесь с 4 проектами — как манипулировать данными и создавать запросы, которые взаимодействуют с более чем одной таблицей.
Вот чему вы научитесь в этом бесплатном курсе SQL на Codecademy :
- как использовать SQL для доступа, создания и обновления данных, хранящихся в базе данных.
- Как писать сложные запросы, изучая основные ключевые слова запросов и функции
- Как использовать мощные функции для легкого выполнения сложных операций с базой данных.
- Как создавать и управлять базами данных с несколькими связанными таблицами
Более 1,2 миллиона человек присоединились к этому бесплатному курсу SQL, и вы тоже можете присоединиться.
Это бесплатный курс SQL от Стэнфордского университета. Этот курс содержит хорошие видеоуроки по SQL, объясняющие базовые и расширенные концепции SQL и реляционных баз данных.
Вы можете использовать этот курс как в зарегистрированном, так и в незарегистрированном режиме, хотя лучше зарегистрироваться, чтобы сохранить свой прогресс. Это также курс для самостоятельного обучения, поэтому вы можете учиться со своей скоростью.
На этом веб-сайте также бесплатно предоставляются все материалы курса, такие как сценарии SQL, слайды курса и т. д., которые можно загрузить из соответствующих разделов. Учитывая, что этот курс разработан в Стэнфордском университете, вы можете быть уверены в его качестве.
Один из лучших веб-сайтов для изучения информатики и программирования в Интернете, Khan Academy также имеет хороший учебник по SQL под названием 9.0014 «Введение в SQL: запросы к базам данных и управление ими».
В этом бесплатном руководстве по SQL вы узнаете, как использовать SQL для хранения, запроса и управления данными. SQL — это язык программирования специального назначения, предназначенный для управления данными в реляционной базе данных и используемый многими приложениями и организациями.
В прошлом я использовал несколько руководств от Академии Хана, и это одно из них; это как виртуальный класс.
Хороший компаньон SQLZoo сделает ваше исследование завершенным. Вы также можете воспользоваться помощью некоторых хороших книг по SQL, таких как 9.0014 Первый SQL . Если вы новичок, метод «с головой» — один из лучших способов изучения SQL.
6. Учебник по SQL — полный курс по базам данных для начинающих [FreeCodeCamp]
FreeCodecam — еще одно полезное место для изучения технических навыков. У них есть веб-сайт freecodecamp.org и канал на Youtube, на котором полно бесплатных, но всесторонних курсов, и это один из них.
Этот курс по SQL набрал более 7 миллионов просмотров, и я думаю, что это самый популярный бесплатный курс по SQL на Youtube.
Курс предназначен для начинающих пользователей SQL и систем управления базами данных и знакомит с общими темами управления базами данных.
В ходе курса вы изучите ключевые темы SQL, такие как проектирование схемы, базовые операции C.R.U.D, агрегирование, вложенные запросы, соединения, ключи и многое другое.
Вы можете БЕСПЛАТНО посмотреть этот курс прямо здесь или на YouTube.
SQLBolt — еще один хороший веб-сайт для изучения SQL с помощью простых интерактивных примеров. Он содержит ряд интерактивных уроков и упражнений, призванных помочь вам быстро изучить SQL прямо в браузере.
Он содержит 20 уроков от простого SQL-запроса до более сложных и запутанных запросов на соединение, агрегации, фильтрации и работы с нулевыми значениями. Это один из лучших ресурсов для изучения SQL для начинающих.
Так что, если вы тот, кто хочет изучать SQL или вы знаете SQL, но не чувствуете себя комфортно, попробуйте интерактивные учебные пособия по SQL от SQLBolt. В SQLBolt также есть задачи SQL после каждого урока, которые заставят вас использовать знания, полученные на уроке.
Качество запросов хорошее, с ними легко начать, а потом становится сложно. Если вы застряли при написании SQL-запроса для решения задачи, вы даже можете воспользоваться помощью их решения.
Я предлагаю вам закончить задание, как только вы закончите арендодателя, а затем выполнить задание с некоторыми изменениями на следующий день.
Многие люди не знают, что в Datacamp есть отличный курс SQL, который можно использовать для изучения SQL для Data Science. Курс является отличным ресурсом для изучения основ запросов к таблицам в реляционных базах данных, таких как MySQL, SQL Server и PostgreSQL.
Этот курс обучает синтаксису SQL, общему для многих типов баз данных, таких как PostgreSQL, MySQL, SQL Server и Oracle, и расскажет вам все, что вам нужно знать, чтобы начать работать с базами данных уже сегодня!
Первая глава « Фильтрация столбцов» совершенно бесплатна. Вы узнаете о таблицах, столбцах и строках в SQL, как говорить о них, используя жаргон базы данных, и как начать анализ, используя простые команды SQL для выбора и суммирования столбцов из таблиц базы данных.
Присоединившись к этому курсу SQL , вы освоите важные навыки SQL, решая игровые задачи для поощрения и обучения. Кстати, другие главы платные, и для доступа к ним может потребоваться купить подписку Datacamp. Тем не менее, это отличный ресурс для начинающих, и я настоятельно рекомендую его.
И, если вы, как и я, знаете SQL, но всегда хотите расширить свои знания и любите пробовать хорошие SQL-запросы, ознакомьтесь с 9 книгой Джо Селко.0014 Загадки и ответы по SQL, второе издание ; это один из превосходных ресурсов для изучения и освоения программирования SQL.
Вот и все о некоторых из лучших ресурсов для БЕСПЛАТНОГО онлайн изучения концепций SQL и баз данных . Хотя в Интернете полно бесплатных вещей, найти хороший ресурс сложно. Я по-прежнему уважаю кураторские ресурсы и многое извлек из них. Хотя ничто не может заменить обучение в классе, сочетание книг, блогов, видеоуроков и интерактивных веб-сайтов действительно может помочь вам в этом.
Некоторые другие БЕСПЛАТНЫЕ онлайн-ресурсы для программистов
- 10 лучших онлайн-курсов по SQL и базам данных (лучшие курсы)
- Полная дорожная карта DevOps (дорожная карта)
- 10 бесплатных курсов для изучения базы данных SQL Server (бесплатные курсы)
- Веб-сайт для онлайн-практики SQL-запросов к любой базе данных с использованием SQLFiddle (см. здесь)
- 2 веб-сайта для онлайн-обучения кодированию на Java и Python (см. здесь)
- 5 лучших веб-сайтов для бесплатного изучения Java-кодирования (веб-сайты)
- 5 лучших курсов для изучения базы данных MySQL для начинающих (курсы)
- 5 лучших курсов для изучения PostgreSQL для начинающих (курсы)
- 10 бесплатных книг для изучения Java (см. здесь)
- 10 бесплатных курсов для изучения программирования на Java для начинающих (курсы)
- 5 бесплатных курсов по изучению Spring и Spring Boot (курсы)
- The Complete React JS RoadMap (дорожная карта)
- 5 бесплатных курсов по изучению базы данных и SQL онлайн (курсы)
Спасибо, что прочитали эту статью, так что далеко. Если вам нравятся эти веб-сайтов для изучения SQL онлайн БЕСПЛАТНО, , пожалуйста, поделитесь ими с друзьями и коллегами. Если у вас есть какие-либо вопросы или отзывы, пожалуйста, оставьте заметку.
P. S. — Если вы не возражаете заплатить несколько долларов за изучение такого ценного навыка, как SQL, который может окупиться в течение длительного времени, я также рекомендую вам ознакомиться с курсом An Introductory Guide to SQL на Educative , интерактивным , текстовый веб-сайт, где вы можете практиковаться в SQL онлайн в своем браузере без установки какой-либо базы данных или настройки таблицы и тестовых данных.
Вводное руководство по SQL — интерактивное обучение
Умение работать с SQL становится все более востребованным навыком как для разработчиков программного обеспечения, так и для людей в менее…
www.educative.io
Руководство по поиску Лучшая книга с упражнениями по Sql для покупки в Интернете — BNB
У вас может возникнуть соблазн купить сразу несколько книг, но у вас может не хватить бюджета. Таким образом, книжные энтузиасты должны расставить приоритеты в своем списке, где им нужно выяснить, какой из них должен быть в приоритете. Что ж, это может быть непросто, если вы не знаете некоторых правил расстановки приоритетов в выборе книг.
Поскольку вы ищете лучшую книгу с упражнениями по Sql, мы придумали несколько проверенных способов отфильтровать возможные варианты книг и выбрать лучший вариант для определенного времени. Мы обсудим, как вам следует подходить к решению о покупке, и рассмотрим такие переменные, как жанр книги, аннотация, предпочтения автора, личные рекомендации, онлайн-рекомендации и удобочитаемость.
Здесь мы следим за тем, чтобы вы не выбрали не тот или тот, который не подходит для приоритета. Поэтому ознакомьтесь с нашими рекомендациями по рецензированию здесь, чтобы выбрать наиболее подходящую книгу.
Нужен быстрый выбор учебника Sql? Просто следуйте этой таблице
Будучи партнером Amazon, мы зарабатываем на соответствующих покупках. Подробнее читайте здесь.
1 SQL Полное руководство для начинающих по программированию SQL по SQL 9,5
2 Книги по SQL - Ultimate Beginner Intermediate по SQL 9. 1
3 Проблемы с практикой SQL, начиная со среднего и продвинутого уровня по SQL 8,9
4 SQL Изучайте SQL с помощью MySQL в одном по SQL 9,6
5 SQL для начинающих Упрощенный SQL A по SQL 9,5
6 SQL QuickStart Guide Упрощенное руководство для начинающих по SQL 8,9
7 Одна неделя Data Science в Python по Один 9
8 Семинар по SQL Научитесь создавать манипуляции по 9,3
9 Руководство для женщин по силовым тренировкам от по 9. 1
10 SQL по минутам в день Sams Teach по SQL 9,4
15 лучших обзоров книг с упражнениями Sql для начинающих
Показатель популярности 9.7
Показатель качества 9.2
Показатель тональности 9.1
Оценка редакции
9. 3
Посмотреть на Амазоне Найти на Ebay Отзывы клиентов
Выделенные функции
- Джейкобс, Пейдж (автор)
- английский (язык публикации)
- 194 страницы - 05.01.2019 (дата публикации) - независимо опубликовано (издатель)
Дополнительная информация:
Марка SQL Цвет Серебро Артикул Размеры Высота 6 Ширина 27 Длина 42 Масса 55,7 Показатель популярности 9.7
Показатель качества 9.8
Показатель тональности 9.1
Редакционная оценка
9,5
Посмотреть на Амазоне Найти на Ebay Отзывы клиентов
Выделенные функции
- Amazon Kindle Edition
- Reed, Mark (Автор)
- Английский (язык публикации)
- 348 страниц — 11. 07.2022 (дата публикации)
Дополнительная информация:
Марка SQL Цвет Серый Артикул Размеры Высота 10 Ширина 40 Длина 26 Масса 72,91 Показатель популярности 9.6
Показатель качества 9.4
Показатель тональности 9.1
Оценка редакции
9.4
Посмотреть на Амазоне Найти на Ebay Отзывы клиентов
Выделенные функции
- Vasilik, Sylvia Moestl (Автор)
- Английский (Язык публикации)
- 125 страниц - 13.03.2017 (Дата публикации) - Независимо опубликовано (Издатель)
Дополнительная информация:
Марка SQL Цвет Черный Артикул Размеры Высота 14 Ширина 33 Длина 40 Масса 35,13 Показатель популярности 9
Показатель качества 9. 7
Оценка тональности 8,9
Оценка редакции
9.2
Посмотреть на Амазоне Найти на Ebay Отзывы клиентов
Выделенные функции
- Издательство LCF (Автор)
- Английский (Язык публикации)
- 164 страницы - 09.11.2018 (Дата публикации) - Независимо опубликовано (Издатель)
Дополнительная информация:
Марка SQL Цвет Черный Артикул Размеры Высота 5 Ширина 21 Длина 41 Масса 57,28 Рейтинг популярности 9,1
Показатель качества 9.8
Показатель тональности 9.1
Оценка редакции
9. 3
Посмотреть на Амазоне Найти на Ebay Отзывы клиентов
Выделенные функции
- Amazon Kindle Edition
- Berg, Craig (Автор)
- Английский (язык публикации)
- 137 страниц — 19.09.2019 (дата публикации)
Дополнительная информация:
Марка SQL Цвет Черный Артикул Размеры Высота 18 Ширина 41 Длина 23 Масса 32,23 Показатель популярности 9.8
Показатель качества 9.3
Показатель настроения 9.5
Оценка редакции
9,5
Посмотреть на Амазоне Найти на Ebay Отзывы клиентов
Выделенные функции
- Шилдс, Уолтер (автор)
- английский (язык публикации)
- 249 страниц — 18. 11.2019 (дата публикации) — ClydeBank Media LLC (издатель)
Дополнительная информация:
Марка SQL Цвет Белый Артикул Размеры Высота 12 Ширина 37 Длина 39 Масса 35,4 Показатель популярности 9,8
Показатель качества 9.8
Показатель настроения 9.6
Оценка редакции
9,7
Посмотреть на Амазоне Найти на Ebay Отзывы клиентов
Выделенные функции
- Райан Ахмед (Автор)
- Английский (язык публикации)
Дополнительная информация:
Марка Один Цвет Белый Артикул Размеры Высота 16 Ширина 32 Длина 41 Масса 77,94 Показатель популярности 9. 1
Показатель качества 9.1
Оценка тональности 8,9
Оценка редакции
9,0
Посмотреть на Амазоне Найти на Ebay Отзывы клиентов
Выделенные функции
- Соломон, Франк (автор)
- английский (язык публикации)
- 288 страниц - 30.12.2019 (дата публикации) - Packt Publishing (издатель)
Дополнительная информация:
Марка Цвет Черный Артикул Размеры Высота 9 Ширина 35 Длина 30 Масса 87.08 Рейтинг популярности 9,6
Показатель качества 9.3
Показатель тональности 9.2
Оценка редакции
9. 4
Посмотреть на Амазоне Найти на Ebay Отзывы клиентов
Выделенные функции
- В этом 113-страничном руководстве вы найдете невероятно эффективный план тренировок на 12 недель, разработанный специально для женщин. , плечи и ноги.
- Содержит советы по поднятию тяжестей, выбору правильного веса и использованию любого тренажера.
- Бетина Гозо (Автор)
- Английский (язык публикации)
Дополнительная информация:
Марка Цвет Кремовый Артикул Размеры Высота 16 Ширина 28 Длина 27 Масса 12,62 Показатель популярности 9.4
Показатель качества 9
Показатель тональности 9.3
Оценка редакции
9. 2
Посмотреть на Амазоне Найти на Ebay Отзывы клиентов
Выделенные функции
- Форта, Бен (автор)
- английский (язык публикации)
- 256 страниц - 10.12.2019 (дата публикации) - Sams Publishing (издатель)
Дополнительная информация:
Марка SQL Цвет Черный Артикул Размеры Высота 15 Ширина 31 Длина 31 Масса 23,38 Показатель популярности 9.7
Показатель качества 9.4
Показатель тональности 9.3
Оценка редакции
9,5
Посмотреть на Амазоне Найти на Ebay Отзывы клиентов
Выделенные функции
- Полные аудио/визуальные уроки
- Руководство по эксплуатации в формате PDF
- Тест, необязательный итоговый экзамен, сертификат об окончании
- Вводный курс по дополнительным материалам
- Более 3 часов видеоуроков (43 индивидуальных урока)
Дополнительная информация:
Марка ТЕАЧУКОМПЛЕКТ Цвет Черный Артикул Размеры Высота 19 Ширина 39 Длина 25 Масса 79,38 Показатель популярности 8. 9
Показатель качества 9.7
Показатель тональности 9.7
Редакционная оценка
9.4
Посмотреть на Амазоне Найти на Ebay Отзывы клиентов
Выделенные функции
- ПОТРЯСАЮЩАЯ ПОСАДКА: Соответствует размеру, отлично сидит и ощущается. Стирайте в холодной воде, вывернув наизнанку. Хотите, чтобы папа выглядел как суперзвезда? Эта рубашка имеет отличный внешний вид и классную посадку. Эта мужская забавная футболка отлично подходит мужчинам, подросткам и детям. Ничто не сравнится с футболкой в качестве подарка. В настоящее время без присмотра. Делает отличный подарок для кого-то особенного.
- ПРИЯТНОЕ ЧУВСТВО: Наши рубашки изготавливаются из 100% хлопка с предварительной усадкой; AshGrey — 99/1 хлопок/полиэстер; SportGrey 90/10хлопок/полиэстер, если доступно. Футболка, доступная в размерах 2XL, 3XL, 4XL, 5XL, подарит взрослый юмор. Сарказм смеется. Футболка с рисунком станет подарком для папы. Отличная идея подарка для подростков, мальчиков и девочек, пап, дядей и лучших друзей.
- СТАНЕТ ОТЛИЧНЫМ ПОДАРКОМ: посмотрите все наши забавные футболки! Футболка с рисунком — лучшая идея для подарка. Рождество, День отца, День матери, подарок друзьям, брату/сестре. Добро пожаловать домой подарок. Долговечные футболки носят на вечеринках в кино и круглый год. Идеально подходит для школьных занятий или рождественского подарка. Подарите им то, что они будут носить круглый год. Убедитесь, что это футболка Feeling Good.
- ВЫСШЕЕ КАЧЕСТВО: Наши футболки с изображением Профессиональная трафаретная печать разработана в США компанией Feelin Good Tees. Ничто не сравнится с нашей подборкой забавных саркастичных футболок! Он станет отличным подарком на день отца, подарком на день рождения, подарком другу, подарком папе, рождественским подарком. Это отличная мужская футболка. Всем нужно немного юмора и сарказма.
- РАЗВЛЕЧАЙТЕСЬ: поднимите себе настроение с помощью этой забавной футболки. Лучшие смешные футболки. Саркастичность и новизна в одной футболке. Футболка на день рождения лучшая хлопковая футболка. Отличный ледокол. Любите мягкость на ощупь, вероятно, носите ее днем и ночью, ничто не сравнится с футболками, в которых вы можете спать. Эта крутая и стильная футболка с профессиональным принтом.
Дополнительная информация:
Марка В настоящее время Цвет Серебро Артикул Размеры Высота 9 Ширина 39 Длина 33 Масса 45,45 Показатель популярности 9.1
Показатель качества 9
Показатель настроения 9.5
Оценка редакции
9.2
Посмотреть на Амазоне Найти на Ebay Отзывы клиентов
Выделенные функции
- Мерфи, Индера Э. (автор)
- английский (язык публикации)
- 254 страницы - 19.09.2020 (дата публикации) - Tolana Publishing (издатель)
Дополнительная информация:
Марка Цвет Белый Артикул Размеры Высота 14 Ширина 32 Длина 43 Масса 23.05 Показатель популярности 9.1
Показатель качества 9
Показатель настроения 9.8
Оценка редакции
9.3
Посмотреть на Амазоне Найти на Ebay Отзывы клиентов
Выделенные функции
- Amazon Kindle Edition
- Ицик, Бен-Ган (Автор)
- Английский (язык публикации)
- 458 страниц - 07/29/2016 (дата публикации) — Microsoft Press (издатель)
Дополнительная информация:
Марка T-SQL Цвет Многоцветный Артикул Размеры Высота 2 Ширина 38 Длина 43 Масса 96. 04 Показатель популярности 9.7
Показатель качества 9.8
Показатель тональности 9.7
Оценка редакции
9,7
Посмотреть на Амазоне Найти на Ebay Отзывы клиентов
Выделенные функции
- Больё, Алан (Автор)
- Английский (язык публикации)
- 377 страниц - 21.04.2020 (дата публикации) - O'Reilly Media (издатель)
Дополнительная информация:
Марка Обучение Цвет Серый Артикул Размеры Высота 5 Ширина 43 Длина 21 Масса 52,34 Как выбрать лучшую книгу с упражнениями по Sql
При выборе книги с упражнениями по Sql необходимо учитывать несколько факторов. Ниже приведены некоторые вещи, которые вы должны иметь в виду.
1. Автор
В первую очередь вам следует обратить внимание на автора книги. Не все авторы созданы равными, и некоторые лучше других. Ведь именно авторское видение воплотилось на страницах.
Изучите информацию об авторе и проверьте, пользуется ли он хорошей репутацией. Вы можете прочитать обзоры их предыдущих работ, чтобы получить представление о том, чего ожидать. Вы также можете ознакомиться с книгами упражнений Sql, чтобы узнать мнение других людей о работе автора.
2. Язык
При выборе книг следует учитывать язык. Книга должна быть написана на языке, на котором вам удобно читать.
Если вы не понимаете языка, вы не сможете понять содержание книги.
Важно, чтобы книга была написана ясно и лаконично, чтобы читатель мог ее легко понять. Итак, проверьте язык, прежде чем покупать книгу упражнений по Sql онлайн.
3. Грамматика и пунктуация
Грамматика и пунктуация книги также важны. Чтобы книгу можно было легко понять, в ней не должно быть ошибок. Если ошибок слишком много, читать будет довольно сложно.
Важно отметить, что не все книги идеальны, и следует ожидать некоторых ошибок. Чтобы лучше понять качество книги, вы можете прочитать отзывы реальных читателей.
4. Длина
Также следует учитывать длину книги. Кто-то предпочитает короткие книги, а кто-то любит читать длинные. Нет правильного или неправильного ответа относительно длины книги.
Все зависит от ваших предпочтений. Если у вас нет времени, чтобы читать длинную книгу, вы можете выбрать более короткую. Информация в книге должна быть плотной, чтобы вы могли извлечь из нее максимум пользы, даже если она краткая.
5. Цена
При выборе книги важно учитывать цену. Книга должна быть доступной, чтобы вы могли купить ее, не нарушая банк.
Не жертвуйте качеством ради цены. Есть много способов получить скидки на книги, поэтому проведите небольшое исследование и посмотрите, какие варианты вам доступны. Вы также можете ознакомиться с книгой упражнений Sql, чтобы узнать, что другие говорят о ценах на разные книги.
Различные типы книг, доступных в Интернете
В наши дни книги бывают разных форм, и вы можете найти их как в физическом, так и в цифровом формате. Ниже приведены некоторые из типов книг, доступных в Интернете.
Электронные книги Kindle
Электронные книги Kindle являются одними из самых популярных типов книг, доступных в Интернете. Их легко приобрести и загрузить на ваше устройство Kindle.
Купив электронную книгу Kindle, вы навсегда получите к ней доступ. Электронные книги Kindle имеют ряд преимуществ перед традиционными бумажными книгами. Они легче и портативнее, поэтому многие из них можно носить с собой, не утяжеляя себя.
Аудиокниги
Аудиокниги — это записанные версии книг, предназначенные для прослушивания, а не для чтения.
Использование аудиокниг позволяет вам наслаждаться любимыми книгами, одновременно занимаясь другими делами. Вы можете слушать аудиокниги, пока едете на работу, тренируетесь или даже занимаетесь домашними делами.
Книги в твердом переплете
Книги в твердом переплете — это тип физических книг, переплетенных в твердый переплет. Страницы и корешок книги в твердом переплете обычно склеены, что придает книге более жесткую структуру.
Это снижает вероятность повреждения книг в твердом переплете при падении или сгибании. Книги в твердом переплете могут прослужить много лет при правильном уходе.
Мягкая обложка
Книга в мягкой обложке имеет мягкую обложку и переплет. Книги в мягкой обложке обычно дешевле книг в твердом переплете, но они не так долговечны.
Аудио компакт-диск
Аудио компакт-диски — это записи книг, которые можно воспроизводить на проигрывателе компакт-дисков. Аудио компакт-диски — это удобный способ слушать любимые книги и одновременно заниматься другими делами.
Часто задаваемые вопросы:
У людей возникает множество вопросов, когда им нужно выбрать книгу, которая наилучшим образом соответствует их потребностям. Ниже приведены некоторые из наиболее часто задаваемых вопросов о выборе книг.
1. Считается ли роман книгой?
Роман считается книгой, но обычно он длиннее и сложнее, чем книги других типов. Романы обычно имеют хорошо проработанных персонажей и сюжетные линии, и они часто используются для изучения социальных или политических проблем.
Хотя романы могут быть приятными для чтения, они также могут быть сложными, так как требуют от читателя пристального внимания к истории, чтобы следить за происходящим.
2. Как составить список книг и авторов?
Существует несколько различных способов организации списка книг и авторов. Один из способов — организовать их по жанрам. Например, у вас может быть раздел для художественной литературы, документальной литературы, биографий и так далее.
Еще один способ упорядочить список книг и авторов — расположить их в алфавитном порядке по фамилии автора. Это хороший вариант, если вы ищете конкретную книгу, но не помните имени автора.
3. Как определить, какие книги высоко ценятся?
Ценность книги часто определяется ее содержанием. Книга, содержащая информацию, которая считается важной или полезной, обычно ценится выше, чем та, в которой ее нет.
Книгу можно оценить за ее красоту или художественные достоинства. Книга, которая хорошо написана и увлекательна, также может считаться ценной, поскольку она может доставить удовольствие или просветление.
В конечном счете, ценность книги субъективна и зависит от конкретного читателя. То, что один человек считает ценным, может не восприниматься таковым другим. Некоторые книги, как правило, считаются ценными, например те, которые содержат жизненно важную информацию, или те, которые являются шедеврами литературы.
Итак, какую книгу с упражнениями по Sql выбрать?
В заключение, это все, что вам нужно было знать, чтобы купить лучшую книгу упражнений Sql. Начиная с нашего топ-списка и заканчивая эффективным руководством по покупке — это все, что вам когда-либо понадобится.