Наш вариант теста на знание SQL / Хабр
GlukKazan
SQL *
У нас, как и во многих других организациях, проводится тестирование соискателей при поступлении их на работу. Основу тестирования составляет устное собеседование, но в некоторых случаях, даются также практические задания. Несколько дней назад, Руководство попросило меня подготовить набор задач на знание SQL.
Разумеется, я постарался сделать задания не слишком сложными. Уровень соискателей различен и задачи, на мой взгляд, должны быть составлены таким образом, чтобы по результатам их решения можно было судить о том, насколько хорошо испытуемый знает предмет.
Также, не имело смысла давать задания на знание каких-либо особенностей тех или иных СУБД. Мы в работе используем Oracle, но это не должно создавать трудностей для соискателей знающих, например, только MS SQL или PostgreSQL.
Для проведения тестирования, в Oracle 11g была развернута схема, содержащая следующие таблицы:
Требовалось составить SQL-запросы, для решения следующих пяти заданий:
Задание 1
Вывести список сотрудников, получающих заработную плату большую чем у непосредственного руководителя
Вариант ответа
select a.* from employee a, employee b where b.id = a.chief_id and a.salary > b.salary
Задание 2
Вывести список сотрудников, получающих максимальную заработную плату в своем отделе
Вариант ответа
select a.* from employee a where a.salary = ( select max(salary) from employee b where b. department_id = a.department_id )
Задание 3
Вывести список ID отделов, количество сотрудников в которых не превышает 3 человек
Вариант ответа
select department_id from employee group by department_id having count(*) <= 3
Задание 4
Вывести список сотрудников, не имеющих назначенного руководителя, работающего в том-же отделе
Вариант ответа
select a.* from employee a left join employee b on (b.id = a.chief_id and b.department_id = a.department_id) where b.id is null
Задание 5
Найти список ID отделов с максимальной суммарной зарплатой сотрудников
Вариант ответа
with sum_salary as ( select department_id, sum(salary) salary from employee group by department_id ) select department_id from sum_salary a where a. salary = ( select max(salary) from sum_salary )
Не требовалось искать в каком-либо смысле оптимальное решение. Единственное требование: запрос должен возвращать правильный ответ на любых входных данных. Задания разрешалось решать в любом порядке, без ограничения времени. При правильном решении всех заданий, предлагалось следующее задание повышенной сложности:
Дополнительное задание
Составить SQL-запрос, вычисляющий произведение вещественных значений, содержащихся в некотором столбце таблицы
Вариант ответа
select exp(sum(ln(decode(sign(salary),0,1,-1,-salary,salary)))) *decode(mod(sum(decode(sign(salary),-1,1,0)),2),1,-1,1) *sign(min(abs(salary))) from employee
Разумеется, опубликованные здесь ответы не являются единственно верными. В случае, если запрос соискателя не содержит явных ошибок, результаты его выполнения (для различных наборов исходных данных) сравниваются с результатами выполнения соответствующего эталонного запроса.
Теги:
- Тестовые задачи
- SQL
Хабы:
- SQL
Всего голосов 47: ↑38 и ↓9 +29
Просмотры439K
Комментарии 125
Валентин @GlukKazan
Программист, Администратор БД
Комментарии Комментарии 125
Зачем нужен SQL для тестирования?
Каждая система должна иметь базу данных. Информация (сведения о пользователе, состояние транзакции) обычно поддерживается в традиционных реляционных базах данных, таких как MySQL и Oracle.
SQL — это стандартный компьютерный язык для управления реляционными базами данных и обработки данных. SQL используется для запроса, вставки, обновления и изменения данных. Вы можете думать о SQL как о средстве связи между пользователем и СУБД (система управления БД).
Проще говоря, SQL — это язык программирования, с помощью которого мы обращаемся к нашей базе данных.
Чтобы определить SQL-запрос, нам сначала нужно понять, что такое запрос? Запрос может быть определен как запрос данных из базы данных через СУБД. Запрос может рассматриваться как инструкция, отправляемая в СУБД для получения набора данных на основе критериев. Такой запрос может быть разработан с использованием SQL и называется запросом SQL.
Простым примером SQL-запроса будет: Select * from Table.
Посмотрев на этот запрос, вы легко сможете понять, что он пытается сделать — выбрать все данные (представленные *) из таблицы.
Когда вы проводите функциональное тестирование системы через frontend (веб-сайт, мобильные приложения и т.д.), вам также необходимо проверить, правильно ли обновляются отправляемые вами данные в базе данных.
Спрос на универсальных тестировщиков растет. Это означает, что тестировщики должны иметь навыки тестирования функциональности системы с помощью традиционных методов тестирования «наведи, щелкни и проверь», и уметь использовать технические знания для проверки всех аспектов системы.
Насколько важны навыки SQL для тестировщика программного обеспечения?
Некоторые приложения требуют сильных навыков проверки SQL, некоторые из них требуют средних навыков, а для некоторых приложений знания SQL вообще не требуются.
Возьмем в пример веб-сайты, на которых размещаются документы, которые пользователи могут распечатать на принтере. Печать этих документов требует, чтобы пользователи сначала установили специальный контроллер печати на свой ПК. В данном случае работа тестировщика заключается в том, чтобы печатать документы из различных комбинаций операционных систем, браузеров и принтеров и проверять качество печати документов. Для этого теста не нужно применять какие-либо навыки SQL. Опыт SQL требуется для проверки тестовых данных, вставки, обновления и удаления значений тестовых данных в базе данных.
Рассмотрим работу над другим проектом, участие в бэкэнд-тестировании, где требуются сильные знания SQL-запросов. Внутренний инструмент пользовательского интерфейса для получения данных из базы данных Oracle на основе входных значений. В рамках тестирования сравниваются выходные данные инструмента пользовательского интерфейса и выходные данные базы данных, вводятся одинаковые значения в инструмент и базу данных, чтобы убедиться, что инструмент функционировал должным образом. Каждый раз, когда входные значения меняются, администратор базы данных дает группе тестирования очень большие запросы с использованием оператора select. Для начала нужно понять связь между таблицами, столбцами и запросом, прежде чем его использовать. Кроме того, нужно использовать различные типы операторов SQL для проверки тестовых данных.
Следующие знания базы данных и SQL должны быть у тестировщика:
- Он должен уметь распознать различные типы баз данных;
- Подключаться к базе данных с использованием разных клиентов SQL-соединений;
- Понимать отношения между таблицами базы данных, ключами и индексами;
- Умение написать простой оператор выбора или SQL вместе с более сложными запросами на соединение;
- Интерпретировать более сложные запросы.
Наиболее используемые операторы SQL в тестировании:
- Data Manipulation Language (DML): используется для извлечения, хранения, изменения, удаления, вставки и обновления данных в базе данных. Примеры: операторы SELECT, UPDATE и INSERT.
- Data Definition Language (DDL): используется для создания и изменения структуры объектов базы данных в базе данных. Примеры: операторы CREATE, ALTER и DROP.
- Transactional Control Language (TCL): Управляет различными транзакциями, происходящими в базе данных. Примеры: операторы COMMIT, ROLLBACK.
- Inner Join: извлекает сопоставленные записи из обеих таблиц.
- Distinct: извлекает различные значения из одного или нескольких полей.
- In: этот оператор используется, чтобы найти значение в списке или нет.
- Between: этот оператор используется для получения значений в диапазоне.
- Like: этот оператор используется для выполнения сопоставления с шаблоном; он используется с оператором WHERE.
- Order By Clause: указывает порядок возврата строк, сортирует записи таблицы в порядке возрастания или убывания. По умолчанию порядок возрастает.
- GROUP BY: группирует строки, имеющие общее свойство, так что агрегатная функция может быть применена к каждой группе.
- HAVING: выбирает из групп, определенных оператором GROUP BY.
- Aggregate Functions: выполняет вычисление для набора значений и возвращает одно значение. Пример: Avg, Min, Max, Sum, count и т. д.
SQL очень важен в тестировании программного обеспечения, потому что:
- Проверка поможет понять, что данные, которые добавляются в форму (на frontend), добавляются на бэкэнд или нет. Например, при регистрации пользователя на сайте, некоторые поля пропущены, следовательно, мы видим какое-то сообщение об ошибке относительно регистрации пользователя. Также, если мы выполним SQL-запрос, то сможем сказать, что следующие поля пропущены, и есть некоторая ошибка в функциональном модуле регистрации пользователя.
- SQL помогает нам в получении тестовых данных. Например, если нужно проверить некоторые исправления для товаров, которые видны на работающем сайте. С помощью SQL-запроса, можно получить продукты с определенным условием (фильтрацией), и изменить описание товара одновременно всем записям.
- SQL помогает нам в автоматизации тестирования. Например, если нам нужно убедиться, что для платного зарегистрированного пользователя будет отображен флаг VIP после входа в систему. SQL поможет в том, что мы напрямую получим пользователя с этими определенными условиями из базы данных, а затем авторизуемся, используя данные, и просто проверим наличие или отсутствие флага VIP, вместо того чтобы создать нового пользователя и затем произвести оплату от его имени.
Учитывая преимущества работы с SQL и полезность навыков SQL в общем, наш совет тестировщикам -> приобрести минимальные знания SQL, чтобы стать универсальным тестером, который ценится клиентами и компаниями. Изучить SQL вы сможете с помощью нашего курса Практический SQL.
13 навыков работы с SQL, которые, вероятно, сделают вас лучшим инженером
Добро пожаловать в очередную статью из серии «Краткие рассказы о инженерных вещах», название которой говорит само за себя. Мы могли бы говорить о данных, мы могли бы заняться исправлением ошибок, мы могли бы поговорить о том, как мы подошли к созданию нового проекта внутри компании, и мы могли бы написать краткое руководство по языку программирования, что мы и сделали здесь, в этом обширный обзор того, как t перейти от ничего не зная о SQL к кое-чему знанию SQL, а затем к многому знанию SQL.
Ах, SQL. Мы любим SQL, не так ли? Есть ли более крутой набор инициалов, который можно найти где-нибудь в технике?
Подождите, извините, я перепутал репутацию SQL с репутацией другого языка, не так ли? Может пойти? Подождите, Go все еще крут?
Сколько вопросов мы можем начать с этого поста? Сейчас около семи, да? Есть ли запись в Книге рекордов Гиннеса по большинству вопросов, заданных в начале сообщения в блоге?
ОК. SQL не обязательно такой крутой, но он важен, если вы хотите выполнять какую-либо работу с данными. Навыки SQL пользуются большим спросом повсюду, особенно в таких компаниях, как Netflix и Spotify, чья привлекательность и рост во многом обусловлены их пониманием того, как пользователи взаимодействуют с их услугами.
Даже если вы не планируете в ближайшее время переходить в группу данных, стоит потратить время на то, чтобы немного узнать о SQL. Вы лучше поймете, как создавать базы данных и взаимодействовать с ними, что сделает вас более разносторонним. И это круто по-своему.
Итак, на чем следует сосредоточить свои усилия? Не волнуйтесь, это пошаговое руководство — мы предполагаем, что это список, или, лучше сказать, liSQL — вас охватило.
Начните с ярлыка сегодня!
Начальный уровень SQLОбязательная полоска XKCD.
Если вы лишь поверхностно знакомы с SQL (он же язык структурированных запросов), сосредоточьтесь на изучении некоторых ключевых концепций и идей, лежащих в его основе. Понимание баз данных, таблиц и индексов SQL, а также умение написать базовый запрос помогут вам понять назначение и основные области применения SQL.
Если вас немного оскорбляет мысль о том, что вы, возможно, еще не умеете писать базовый SQL-запрос, рекомендуем сразу перейти к следующему разделу.
1. Основы баз данныхЧтобы понять суть SQL, вам сначала нужно разобраться с концепцией баз данных. Для чего они? Как эти электронные файловые системы могут помочь компаниям систематизировать и использовать данные на практике?
Лучшее понимание роли баз данных и их использования поможет вам понять функциональность SQL и роль, которую он играет в вашей организации.
Подробнее: Основы системы баз данных
2. Назначение таблиц и индексовТаблицы и индексы являются основными строительными блоками SQL. Может быть полезно думать о базе данных как о библиотеке, о таблицах как об отдельных книгах, а об указателях как об одном из тех старомодных шкафов с карточками Dewey Decimal, которые помогут вам найти то, что вы ищете.
Хотя знание того, как они на самом деле работают, является более продвинутым навыком, важно понимать, что они из себя представляют и что они делают, чтобы вы могли эффективно перемещаться по данным в своей базе данных.
Подробнее : Объяснение индексов базы данных
3. Базовый синтаксис SQLЧтобы понять любой язык программирования, вы должны сначала освоить его синтаксис. В SQL это означает понимание того, как построить запрос для поиска нужной информации.
Изучите основные команды SELECT и FROM для создания функционального запроса, извлекающего данные из таблицы. SQL невероятно точен, и небольшие ошибки могут привести к серьезным проблемам в будущем, поэтому потратьте некоторое время на изучение того, как избежать распространенных синтаксических ошибок, таких как ошибки ключевых слов и неправильные кавычки.
Подробнее: Изучение SQL для начинающих за 5 шагов за 5 минут
4. Условные фильтрыНе всегда нужно извлекать каждую запись из определенного столбца. Обычно ваши потребности будут немного более конкретными. Как только вы поймете, как структурировать запрос, научитесь писать несколько более сложный запрос, чтобы вы могли извлекать необходимую информацию из таблицы.
Предложения WHERE помогают фильтровать таблицу вместе с ИЛИ и И . GROUP BY и ORDER BY помогают упорядочить полученные данные. Изучив их, вы будете знать, как писать самые простые запросы.
Подробнее: Как фильтровать результаты запроса
Навыки работы с SQL среднего уровняЕсли вы уже знаете основы SQL и как выполнять запросы к базе данных, вы можете повысить свои навыки с помощью более продвинутых навыков. функции и более глубокое знание теории. Эти навыки немного сложнее, и, как и в случае с чем-либо более сложным, для полного понимания может потребоваться больше времени.
5. СоединенияНе все данные, с которыми вам нужно работать, всегда будут в одной таблице; на самом деле, чаще всего это не так. Освоив соединения, вы можете объединить данные из нескольких таблиц вместе. Это значительно упрощает анализ различных наборов данных.
Существует четыре типа соединений: внутреннее, левое, правое и полное. Вам нужно будет узнать, что и когда использовать, и код, необходимый для их выполнения.
Дополнительные сведения: Основные типы соединений SQL
6. ПодзапросыПодзапрос, иногда называемый вложенным запросом, представляет собой запрос, вложенный в другой оператор. Как и объединения, они используются для связывания данных между разными таблицами, но при правильном выполнении они быстрее и эффективнее, чем соединения, поскольку исключают дополнительные шаги при извлечении данных.
Узнайте, когда и где можно использовать подзапросы вместо соединений, и научитесь писать удобочитаемый и удобный для сопровождения SQL с использованием общих табличных выражений, даже когда ваши подзапросы становятся все более сложными.
Подробнее: Введение в подзапрос в SQL
7. Как работают индексыИндексы базы данных ускоряют выполнение запросов. Упорядочивая таблицы данных, индексы упрощают запросы для получения нужной информации.
Знание того, как (и почему) создаются индексы, а также различных типов, поможет вам лучше понять, как их эффективно использовать. Узнайте о разнице между кластеризованными и некластеризованными индексами, о том, как индексирование добавляет структуру данных, и о правилах создания эффективных индексов.
Подробнее: Как работает индексирование
8. Получите практические знания PHPLol. Вы уже усердно работаете над изучением SQL, а теперь мы советуем вам начать изучать и PHP?
Требует многого, но некоторые навыки работы с PHP помогут вам взаимодействовать со многими популярными программами баз данных SQL, такими как MySQL. Вы можете создать практически любой веб-сайт, используя их вместе. Так что, если вы идете ва-банк, вам действительно следует идти ва-банк.
Подробнее: Учебник по PHP и MySQL
9. Как работать с популярными системами баз данныхSQL сам по себе является просто языком программирования. Чтобы на самом деле хранить данные, вам нужно работать с такой системой, как MySQL или PostgreSQL. Оба имеют открытый исходный код, свободно доступны и используют схожий синтаксис, поэтому рекомендуется попытаться освоить оба.
Узнать больше : PostgreSQL против MySQL
Продвинутые навыки работы с SQLЕсли вы уже разбираетесь в базах данных и можете работать с популярными системами управления базами данных, вы, вероятно, чувствуете себя сейчас довольно хорошо. По крайней мере, если работа с базами данных доставляет вам удовольствие. Но всегда есть чему поучиться.
10. Планы выполненияПланы выполнения — это визуальное представление того, как механизм базы данных выполняет запрос. По сути, они позволяют вам заглянуть под капот и увидеть, как делается информационная колбаса.
Планы выполнения могут многое рассказать об эффективности запроса и являются основным инструментом для устранения неполадок медленного или неэффективного запроса. Чтение и понимание их может помочь вам настраивать запросы, не снижая производительности. Узнайте, как получить план выполнения, прочитать его и настроить для повышения производительности запросов.
Подробнее: План выполнения в SQL Server
11. Резервное копирование баз данныхСоздание резервной копии базы данных имеет решающее значение в случае, если ваша первая база данных каким-либо образом повреждена или повреждена. Существуют различные типы резервных копий, и знание того, какие из них использовать и как создавать (и восстанавливать) каждый из них, является важной частью управления базой данных.
Подробнее : Общие сведения о типах резервных копий SQL Server
12. Использование индексов для ускорения SQL-запросовИндексы могут повысить производительность за счет более быстрого поиска данных, но плохое индексирование также является одним из самых серьезных убийц производительности. Изучение того, как определять хороших кандидатов для индексов, а также как создавать и поддерживать их, поможет вам быстро и упорядоченно управлять базой данных.
Подробнее : Убийцы производительности SQL-запросов — понимание плохого индексирования базы данных вы можете с помощью простой двумерной электронной таблицы. Раньше это выполнялось в основном в виде кубов OLAP, но в последние годы оно расширилось и теперь включает запуск рабочих нагрузок OLAP непосредственно в столбцовых базах данных.
Для реализации требуется много продвинутых навыков, но OLAP может помочь вам сопоставлять числа интересными способами, помогающими понять бизнес.
Узнать больше : Учебники по OLAP
Дальнейшее совершенствование навыков работы с SQLНедостаток крутости SQL компенсируется энтузиазмом сообщества. Интернет изобилует невероятными бесплатными ресурсами, которые помогут вам узнать больше о широком мире SQL. От специализированных блогов до онлайн-курсов и активных сообществ разработчиков SQL существует почти бесконечное количество возможностей для получения дополнительной информации.
Начните с основ, продвигайтесь вверх, и вскоре вы станете мастером базы данных. И это довольно круто.
Знаете, что еще круто, но не требует знаний SQL или баз данных? Использование ярлыка для управления вашими проектами. Зарегистрируйтесь и попробуйте нас бесплатно, чтобы убедиться, насколько это круто.
Если у вас есть вопросы о ярлыке, посетите наш справочный центр. Мы здесь, чтобы помочь. А также управлять проектами. Но в основном помогать.
Поделитесь этой короткой историей
Другие истории от Shortcut
Управление проектами
Почему Agile остается такой популярной методологией управления проектами при разработке программного обеспечения?
Software Engineering
How Shortcut Uses LaunchDarkly
Product Management
Ultimate Setup Series: Best Practices for Monitoring Progress
Практика SQL — общие вопросы и ответы для навыков SQL
Эта статья покажет некоторые важные вопросы и ответы на них для практики SQL.
Введение
SQL является основой для работы с различными базами данных. Даже некоторые базы данных NoSQL используют расширение SQL для запроса данных. Специалисты по данным, аналитики бизнес-аналитики, разработчики бизнес-аналитики, администраторы баз данных, разработчики баз данных, инженеры данных, аналитики отчетов и некоторые другие рабочие места требуют знания SQL как части необходимых знаний. Для управления данными знание SQL является основой для работы с базами данных, и количество заданий, связанных с базами данных, растет с каждым днем. Индустрия программного обеспечения, включая базы данных, является самой востребованной профессией в мире. Вот почему в этой статье мы покажем некоторые вопросы и ответы для практики SQL.
Требования
Для начала вам необходимо установить SQL Server и пример базы данных Adventureworks. Следующие ссылки могут помочь вам, если они у вас не установлены:
- Как установить выпуск SQL Server для разработчиков
- Установите и настройте пример базы данных AdventureWorks2016.
Q1. Пожалуйста, выберите всю информацию таблицы лиц, имя которых начинается с A
А1. Вы покажете все столбцы с помощью select * и где [FirstName], например «a%», отфильтрует данные для всех лиц, имя которых начинается с a. Используемый запрос следующий:
1 2 3 4 5 6 |
SELECT * FROM [Человек].[Человек] ГДЕ [Имя] LIKE ‘a%’
|
Оператор LIKE очень часто используется в SQL-запросах. , например «a%», покажет все имена, начинающиеся с буквы a. Есть несколько других операторов, которые вам нужно попрактиковать, такие как EXISTS, IN, =, <>, ANY. По следующей ссылке вы найдете дополнительную информацию об операторах:
- Операторы (Transact-SQL)
Обратите внимание, что использование * является плохой практикой для больших таблиц, но в данном случае это маленькая таблица, поэтому это не повлияет на производительность. В общем, старайтесь выбирать только нужные столбцы, а не все.
Q2. Создайте процедуру хранения, которая получает первое имя таблицы person в качестве входных данных и фамилию в качестве выходных данных.
В практике SQL необходимо упомянуть о хранимых процедурах, поскольку они часто используются в SQL Server. Хранимые процедуры представляют собой предложения T-SQL, которые нельзя применять к другим базам данных, таким как Oracle, MySQL, PostgreSQL. В следующем примере кода показано, как создать хранимую процедуру с именем GetLastName. Он получает параметр @firstname и возвращает фамилию предоставленного имени. Он запрашивает таблицу Person:
1 2 3 4 5 6 7 8 10 11 | Решающая процедура getLastName @firstname varchar (50), @lastname varchar (50) Выход AS Начало Select@Lastname = Lastname из [человека]. ГДЕ Имя = @имя КОНЕЦ
|
Чтобы вызвать хранимую процедуру с помощью T-SQL, вам нужно будет объявить переменную для хранения выходной переменной. Мы используем команду execute для вызова хранимой процедуры. Джон — это значение параметра для имени, а фамилия — результат хранимой процедуры:
DECLARE @mylastname nvarchar(50) выполнить dbo.GetLastName ‘John’, @mylastname out ВЫБРАТЬ @mylastname как фамилию
|
Результат, отображаемый при вызове этой процедуры хранения, будет примерно таким:
Дополнительные сведения о создании хранимых процедур см. по этой ссылке:
- Изучение SQL: определяемые пользователем хранимые процедуры
- хранимых процедур SQL Server для начинающих
- СОЗДАТЬ ПРОЦЕДУРУ (Transact-SQL)
Q3. Какой запрос вы бы выполнили, чтобы удалить все строки из таблицы пользователей с минимальной массовой активностью?
А3. Предложение truncate table удаляет данные без регистрации удаления отдельных строк. Это самый эффективный способ удалить все данные. Команда удаления, с другой стороны, регистрирует много данных, если у нас есть несколько строк, и может занимать много места в файлах журнала транзакций. Итак, код будет следующим:
Усечение таблицы person.person
Чтобы попрактиковаться в SQL, попробуйте операторы truncate и delete. Для получения более подробной информации о различиях между усеченными и удаленными предложениями перейдите по этой ссылке:
- Внутреннее устройство операторов SQL Truncate и SQL Delete
Q4. Создайте запрос, чтобы показать номер счета и идентификатор клиента из таблицы клиентов для клиента без заказов на продажу.
А4. Запрос будет примерно таким:
1 2 3 4 5 6 7 8 | Select c. ГДЕ s.salesorderid IS NULL
|
Отображаемый результат будет примерно таким:
Мы используем левое соединение для поиска всех клиентов без продаж, так что salesorderid будет нулевым. В практике SQL вам необходимо знать использование различных СОЕДИНЕНИЙ, таких как ЛЕВОЕ СОЕДИНЕНИЕ, ПРАВОЕ СОЕДИНЕНИЕ, ПЕРЕКРЕСТНОЕ СОЕДИНЕНИЕ. Здесь мы создали несколько статей о различных типах JOIN. Для вас очень важно проверить, потренироваться и изучить все варианты:
- Изучение SQL: объединение нескольких таблиц
- Изучение SQL: ВНУТРЕННЕЕ СОЕДИНЕНИЕ против ЛЕВОГО СОЕДИНЕНИЯ
- SQL CROSS JOIN с примерами
Мы также могли бы использовать операторы EXISTS или IN вместо использования JOINS. Спектакль отличается по сценарию. Производительность в запросах выходит за рамки этой практики SQL. Тем не менее, у нас есть целая статья на эту тему здесь:
- Как разрабатывать SQL-запросы с большей производительностью: SELECT * и EXISTS vs IN vs JOINs
Q5.
У вас есть таблица с температурой в градусах Цельсия у некоторых пациентов. Создайте функцию или хранимую процедуру, чтобы преобразовать градусы Фаренгейта в градусы Цельсия. Вы бы использовали функцию или хранимую процедуру?А5. По сути, вопрос здесь заключается в создании хранимой процедуры или функции для преобразования градусов Цельсия в градусы Фаренгейта. Если у вас уже есть таблица с некоторыми строками в градусах Цельсия, проще всего использовать функцию. Функция может быть примерно такой:
1 2 3 4 5 6 7 8 7 9 7 |
Создать функцию ConvertTocelcius (@temperature Decimal (14,8)) Возврат int AS Begin Declare @fahrenheit Decimal (14,8) Set @fahrenheit = (@temperature * (9.0/. 5.0)) + 32) Возврат (@по Фаренгейту) КОНЕЦ
|
Вызвать функцию проще, чем хранимую процедуру. Дополнительные сведения об использовании функций и хранимых процедур см. по этой ссылке:
- Функции и хранимые процедуры в SQL Server
Q6. Создайте запрос, чтобы показать первые 10 идентификаторов клиентов пользователей с большим количеством заказов.
А6. Для этого практического теста мы будем использовать ТОП-10, чтобы получить идентификаторы клиентов с большим количеством заказов. Мы будем использовать SUM для суммирования столбца «Количество заказа». Обратите внимание, что для агрегированных функций, таких как SUM, псевдоним необходим для определения имени столбца в запросе. Кроме того, Сумма сгруппирована по идентификатору клиента. Обычно агрегированные функции поставляются с предложением GROUP BY. Наконец, мы используем порядок, чтобы упорядочить результат в порядке убывания:
1 2 3 4 5 6 7 8 7 9 7 | Выберите 10 топ -10 сумм ([orderqty]) в качестве OrderQty, CustomerID из [Sales]. =sd.salesorderid ГРУППИРОВАТЬ ПО CustomerID ORDER BY SUM([OrderQty]) desc
|
Отображаемый результат будет примерно таким:
Для получения дополнительной информации об агрегированных функциях, таких как SUM, MAX, MIN, AVG, перейдите по этой ссылке:
- Агрегированные функции (Transact-SQL)
Заключение
В этой статье мы покажем различные вопросы для практики SQL. Мы показываем некоторые вопросы и ответы, чтобы попрактиковаться в SQL и улучшить свои знания. Если у вас есть дополнительные вопросы по этой теме, не стесняйтесь обращаться к нам.
- Автор
- Последние сообщения
Даниэль Кальбимонте
Дэниел Кальбимонте — Microsoft Most Valuable Professional, Microsoft Certified Trainer и Microsoft Certified IT Professional for SQL Server. Он опытный автор SSIS, преподаватель ИТ-академий и имеет более чем 13-летний опыт работы с различными базами данных.