Подсчёт количества. Поиск максимального и минимального значения. Получение суммы

Подсчёт количества

Для подсчёта количества значений или строк применяется функция COUNT().

Найдём количество записей потоков для каждого курса. Чтобы подсчитать строки, определим параметром функции COUNT знак подстановки «звёздочка» и сгруппируем данные в разрезе идентификаторов курсов course_id:

sqlite> SELECT course_id, COUNT(*) FROM streams GROUP BY course_id; course_id COUNT(*)  ---------- ---------- 1      1         2      1         3      1         sqlite>

 

Другой вид с именами столбцов получается посредством режима вывода line:

sqlite>.mode line sqlite> SELECT course_id, COUNT(*) FROM streams GROUP BY course_id; course_id = 1  COUNT(*) = 1   course_id = 2  COUNT(*) = 1   course_id = 3  COUNT(*) = 1 sqlite>

 

Чтобы улучшить вывод, надо дать расчётному столбцу COUNT(*) синоним (алиас), воспользовавшись ключевым словом AS:

sqlite>.mode line sqlite> SELECT course_id, COUNT(*) AS 'streams_total' FROM streams GROUP BY course_id; course_id = 1 streams_total = 1   course_id = 2 streams_total = 1   course_id = 3 streams_total = 1 sqlite>

 

Поиск максимального и минимального значения

Для поиска максимального и минимального значения используются функции MAX и MIN соответственно. Определим максимальную и минимальную оценки ученика по всем курсам. Так как нам надо получить данные в разрезе учеников, то группируем по идентификатору ученика:

sqlite>.header on sqlite>.mode column sqlite> SELECT student_id, MAX(grade) AS 'max_grade' FROM grades GROUP BY student_id; student_id max_grade ---------- ---------- 1      5         2      5         sqlite> sqlite> SELECT student_id, MIN(grade) AS 'min_grade' FROM grades GROUP BY student_id; student_id min_grade ---------- ---------- 1      4.9       2      5         sqlite>

 

Получение суммы

Функция SUM() позволит найти сумму значений столбца. Подсчитаем общее количество занятий по всем курсам. Обратите внимание, что в этом случае группировка не требуется:

sqlite> SELECT SUM(lessons_amount) AS 'lessons_total' FROM courses; lessons_total ------------- 28           sqlite>

 




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