Изучаем SQL. №13. SQL функции для работы с числами.

Изучаем SQL
Про строковые функции в SQL я уже рассказывал, сегодня поговорим о функциях для работы с числами. Тема довольно простая, так что приступим незамедлительно, а именно — рассмотрим четыре основных функции:

SUM(колонка) — вывод суммы всех чисел.
MIN/MAX(колонка) — выводит минимальное/максимальное число.
COUNT(колонка) — выведет количество записей.
AVG(колонка) — выведет среднее арифметическое.

И снова создадим новую таблицу. Я создаю каждый раз все заново, чтобы вы привыкли это делать вручную. Так как дальше мы будем использовать дополнительные инструменты, которые упростят работу с БД. Но пользоваться консолью нужно уметь.


Таблица будет называться producti, и иметь таблицу goods с такими полями: id, name, product, price.

CREATE DATABASE producti;
USE producti;
CREATE TABLE goods (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20),product VARCHAR(50),price INT);
DESCRIBE goods;
+---------+-------------+------+-----+---------+----------------+
| Field   | Type        | Null | Key | Default | Extra          |
+---------+-------------+------+-----+---------+----------------+
| id      | int(11)     | NO   | PRI | NULL    | auto_increment |
| name    | varchar(20) | YES  |     | NULL    |                |
| product | varchar(50) | YES  |     | NULL    |                |
| price   | int(11)     | YES  |     | NULL    |                |
+---------+-------------+------+-----+---------+----------------+

Теперь наполним таблицу данными:

INSERT INTO goods VALUES (NULL,'Ivan','Hleb',5);
INSERT INTO goods VALUES (NULL,'Ivan','Moloko',11);
INSERT INTO goods VALUES (NULL,'Petr','bulka',15);
INSERT INTO goods VALUES (NULL,'katya','kolbasa',40);
INSERT INTO goods VALUES (NULL,'Ira','konfeti',20);

 SELECT * FROM goods;
+----+-------+---------+-------+
| id | name  | product | price |
+----+-------+---------+-------+
|  1 | Ivan  | Hleb    |     5 |
|  2 | Ivan  | Moloko  |    11 |
|  3 | Petr  | bulka   |    15 |
|  4 | katya | kolbasa |    40 |
|  5 | Ira   | konfeti |    20 |
+----+-------+---------+-------+

Теперь приступим к использованию функций. Посмотрим сумму цен товаров:

SELECT SUM(price) FROM goods;
+------------+
| SUM(price) |
+------------+
|         91 |
+------------+

Посмотрим самый дорогой продукт и кто его купил:

SELECT name,product,price FROM goods WHERE price=(SELECT MAX(price) FROM goods);
+-------+---------+-------+
| name  | product | price |
+-------+---------+-------+
| katya | kolbasa |    40 |
+-------+---------+-------+

Показать количество записей в колонке price:

SELECT COUNT(price) FROM goods;
+--------------+
| COUNT(price) |
+--------------+
|            5 |
+--------------+

Найти и показать среднее арифметическое колонки price:

SELECT AVG(price) FROM goods;
+------------+
| AVG(price) |
+------------+
|    18.2000 |
+------------+

На этом все. Вопросы задавайте в комментариях.

4 идей о “Изучаем SQL. №13. SQL функции для работы с числами.

  1. Wolodymyr

    Автору респект и уважуха!
    Очень доходчиво и простым языком.
    Я прокнопал всё за несколько часов, за один день, очень понравилось.
    Лёкгие ошибки указал, чтобы другие «чайники» вроде меня не путались, а качество данного материала улучшалось.
    Последняя замеченная мной ошибочка — Исправьте пожалуйста в строке «Таблица будет называться producti, и иметь таблицу goods с такими полями: id, name, product, price.» первое слово «Таблица..» на «База данных..» чтоб всем было хорошо 🙂

    Еще раз спасибо автору.
    Вообще у автора очень хорошие материалы: можно быстро вспомнить, заполнить пробелы в знаниях, узнать что-то новое или сделать быстрый старт в нужном направлении.

  2. Vladimir

    Автор и правда очень круто все изложил,я человек ничего не знающий утром о BD понимаю все на лету,приятно что еще остались авторы которые умеют при поднести материал)))
    еще раз автору спасибо!!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

×