SQL: быстрое погружение - [19]

Шрифт
Интервал

Внимание

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

Последнее, что мы делаем, — создаем псевдоним, то есть новое поле в нашей базе данных. Этот псевдоним будет расположен после оператора END. Создадим новое поле с именем PurchaseType.

НАПОМИНАНИЕ

Мы создаем псевдонимы с помощью ключевого слова AS. Таким образом, оператор CASE завершается словом END AS, а затем псевдонимом, который мы выбрали для нового поля.

Запрос будет выглядеть следующим образом (рис. 60):

SELECT

InvoiceDate,

BillingAddress,

BillingCity,

Total,

CASE

WHEN TOTAL < 2.00 THEN 'Baseline Purchase'

WHEN TOTAL BETWEEN 2.00 AND 6.99 THEN 'Low

Purchase'

WHEN TOTAL BETWEEN 7.00 AND 15.00 THEN 'Target

Purchase'

ELSE 'Top Performers'

END AS PurchaseType

FROM

invoices

ORDER BY

BillingCity

Проанализировав полученные результаты, мы увидим, что добавлена новая категория с именем PurchaseType и к данным добавлены все категории покупок.

Из полученных результатов мы видим, что все категории, которые мы проверяли, представлены в соответствии с их соответствующими категориями покупки (PurchaseType).

Рис. 60

Примечание

Используя условие ORDER BY, мы можем упорядочить результаты по полю, где отображается каждая категория покупки в алфавитном порядке, начиная с Baseline Purchase (базовая покупка) и заканчивая Top Performer (значительная покупка). Для ясности мы присвоили каждой категории свои имена, но вы можете присвоить им любое другое имя.

Теперь, когда новые категории созданы, нам необходимо узнать больше о демографических характеристиках наших клиентов на основе наших новых категорий продаж. Существует множество способов структурировать остальную часть оператора SELECT.

Ответим на следующие вопросы.

• В каких городах осуществляются самые эффективные продажи?

• Самые эффективные продажи в основном осуществляются в США или в других странах?

• В каких городах совершается больше всего базовых покупок?

Рассмотрим первый вопрос. Чтобы получить данные только об эффективных продажах и упорядочить их по городам, мы можем изменить наш существующий запрос, используя условие WHERE.

SELECT

InvoiceDate,

BillingAddress,

BillingCity,

Total,

CASE

WHEN TOTAL < 2.00 THEN 'Baseline Purchase'

WHEN TOTAL BETWEEN 2.00 AND 6.99 THEN 'Low

Purchase'

WHEN TOTAL BETWEEN 7.00 AND 15.00 THEN 'Target

Purchase'

ELSE 'Top Performers'

END AS PurchaseType

FROM

invoices

WHERE PurchaseType = 'Top Performers'

ORDER BY

BillingCity

Рис. 61

Проанализировав результат запроса, мы можем определить, что самые эффективные продажи в основном осуществляются в США.

Комбинации полей, по которым проводится поиск, практически безграничны. Например, мы можем получить данные в зависимости от даты выставления счета, чтобы проанализировать сезонные продажи. Использование операторов CASE с условием WHERE и операторами, изученными в этой главе, поможет получить данные, необходимые для нашего отдела продаж.

Примечание

В примерах в этой главе мы использовали оператор CASE в части запроса SELECT после необходимых для отображения полей. Далее вы можете встретить запрос, в котором оператор CASE содержится в условии WHERE (редкий случай). Все, что сейчас важно, — это помнить, что оператор CASE должен быть указан в условии SELECT, но ссылаться на него можно из другого места программного кода.

Контрольные вопросы

1. Создайте запрос для таблицы invoices, включающий оператор CASE, который будет отмечать все продажи из США — страны, откуда выставлен счет — как Domestic Sales (Продажи на внутреннем рынке), а все другие продажи — как Foreign Sales (Продажи за рубежом). После оператора ENDAS создайте новое поле SalesType.

2. Отсортируйте эти данные по новому полю SalesType.

3. Сколько счетов от продаж на внутреннем рынке превышает сумму $15?

Резюме

• Операторы — это специальные ключевые слова SQL, которые используются с условиями SQL для фильтрации данных в зависимости от определенных условий.

• Использование условия WHERE с комбинацией различных операторов позволяет выполнять поиск определенного текста, даты и числа.

• Функция DATE() позволяет исключить время при указании параметров даты.

• Порядок операций при использовании логических операторов (таких как AND/OR) устанавливается с помощью круглых скобок ().

• Оператор CASE позволяет отмечать записи специальным именем поля в зависимости от заданных пользователем логических условий.

*** Существует некая путаница в терминологии. В английском языке есть два разных слова, statement и operator, которые чаще всего переводят одинаково — оператор. Встречается также перевод слова operator (в применении к арифметическим, логическим и сравнения) как «операция», а перевод слова statement как «инструкция». Мы будем использовать термин «оператор» как наиболее привычный. — Примеч. ред.

Глава 6. Работа с несколькими таблицами

Во всех предыдущих запросах мы рассматривали получение данных только из одной таблицы. Хотя мы изучили некоторые мощные запросы, они не используют все возможности реляционной базы данных. База данных sTunes содержит тринадцать таблиц. Каждая таблица содержит некоторую, но не всю, информацию о компании. Чтобы ответить на более сложные вопросы о компании sTunes, понадобится одновременный доступ к данным из нескольких таблиц. В этой главе мы узнаем, как получить данные из двух или более таблиц с помощью одного запроса и инструментов, называемых соединениями.


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


MFC и OpenGL

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


Симуляция частичной специализации

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


Обработка событий в С++

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


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.


В работу с головой. Паттерны успеха от IT-специалиста

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


Чистый код. Создание, анализ и рефакторинг

Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение». Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший. Книга состоит из трех частей.


Изучаем Python

Книга "Изучаем Python" - это ускоренный курс, который позволит вам сэкономить время и сразу начать писать работоспособные программы (игры, визуализации данных, веб-приложения и многое другое). Хотите стать программистом? В первой части книги вам предстоит узнать о базовых принципах программирования, познакомиться со списками, словарями, классами и циклами, вы научитесь создавать программы и тестировать код. Во второй части книги вы начнете использовать знания на практике, работая над тремя крупными проектами: создадите собственную "стрелялку" с нарастающей сложностью уровней, займетесь работой с большими наборами данных и освоите их визуализацию, и, наконец, создадите полноценное веб-приложение на базе Django, гарантирующее конфиденциальность пользовательской информации. Если вы решились разобраться в том что такое программирование, не нужно ждать.


Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих

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