Получение только уникальных значений

Получение только уникальных значений

Например, нам надо найти идентификаторы всех учеников, кто окончил хотя бы один курс. Для этого воспользуемся простым запросом ниже:

sqlite> SELECT student_id FROM grades; student_id ---------- 1         1         1         2  sqlite>

 

Проблема такого решения в том, что мы получим и все дублирующие значения идентификаторов, которые сейчас нам не требуются. Чтобы избавиться от дубликатов, применяется ключевое слово DISTINCT, которое даёт указание СУБД вернуть только уникальные значения из всей выборки:

sqlite> SELECT DISTINCT(student_id) FROM grades; student_id ---------- sqlite>

 

Расширенные варианты определения условия

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

Условие неравенства

Рассмотрим задачу, где надо определить курсы, количество занятий которых не равно 12. Для решения воспользуемся двумя вариантами синтаксиса — «!=» и «<>»:

sqlite> SELECT name FROM courses WHERE lessons_amount!= 12; name                  ---------------------- Linux. Рабочая станция Основы Python sqlite> SELECT name FROM courses WHERE lessons_amount <> 12; name                  ---------------------- Linux. Рабочая станция Основы Python sqlite>

 

Условие «больше или меньше»

Для определения граничных значений используется синтаксис «больше или меньше»:

sqlite> SELECT name FROM courses WHERE lessons_amount < 12; name                  ---------------------- Linux. Рабочая станция Основы Python         sqlite> SELECT name FROM courses WHERE lessons_amount > 8; name       ----------- Базы данных sqlite>

 

Обратите внимание, что в части WHERE мы используем значения столбца количества уроков lessons_amount, но само это значение в части SELECT не выводим. Выводить значения тех столбцов, которые используются в условии, необязательно. Необходимость этого определяется из постановки задачи.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: