Мазмунга өтүү

Агрегаттык функциялар: COUNT, SUM, AVG, MIN, MAX

Программалоо SQL Татаалдыгы 1/5

Сабактын башталышы

Агрегаттык функциялар: COUNT, SUM, AVG, MIN, MAX

Бүтүн мамычадагы маанилерди бир пайдалуу жоопко айландырабыз

Негизги идея: Көпчүлүк суроо-талаптар көп сап кайтарат. Агрегаттык функция башкача иштейт: ал саптардын бүтүн тобун окуп, бир маани кайтарат - сан, жалпы сумма, орточо, эң кичине же эң чоң маани.
Сабактын аягында сиз төмөнкүлөрдү жасай аласыз:
  • COUNT(*) менен саптарды, COUNT(column) менен маанилерди санай аласыз,
  • SUM менен мамычаны кошуп, AVG менен орточону таба аласыз,
  • MIN жана MAX менен эң кичине жана эң чоң маанини таба аласыз,
  • ар бир функция NULL маанилерди кантип иштетерин түшүндүрө аласыз,
  • WHERE шартын кошуп, керектүү саптарды гана агрегациялай аласыз.

1. Агрегаттык функция деген эмне?

Блендерди элестетиңиз. Сиз ага бир ууч мөмө салып, баскычты басасыз - жана бир стакан ширени аласыз. Агрегаттык функция ушундай эле иштейт: сиз аны бүтүн мамычага багыттайсыз, ал болсо аларды бир жоопко аралаштырат.

Кадимки SELECT price FROM toys сурамы алты өзүнчө бааны - алты сапты - көрсөтмөк. Ал эми SELECT SUM(price) FROM toys бардык алты бааны окуп, бир санды кайтарат: алардын суммасын. Агрегациялоо деген сөз жөн эле "көптү бирге чогултуу" дегенди билдирет.

Эң көп жолугуучу беш агрегаттык функция:

  • COUNT - канча?
  • SUM - жалпы сумма канча?
  • AVG - орточосу канча?
  • MIN - эң кичинеси кайсы?
  • MAX - эң чоңу кайсы?

2. Мисалыбыз: оюнчук дүкөнүнүн таблицасы

Төмөнкү бардык суроо-талаптар toys деген бир кичинекей таблица менен иштейт. Мына ал: бир жолу түзүлүп, алты оюнчук менен толтурулган. discount мамычасына көңүл буруңуз: эки оюнчукта арзандатуу али жок, ошондуктан алардын мааниси NULL ("белгисиз / коюлбаган" дегенди билдирет).

CREATE TABLE toys (
  id       INT,
  name     VARCHAR(30),
  price    DECIMAL(5,2),
  stock    INT,
  discount DECIMAL(4,2)
);

INSERT INTO toys VALUES
  (1, 'Teddy Bear', 12.50,  8, NULL),
  (2, 'Race Car',    9.00, 15, 2.00),
  (3, 'Kite',        6.50,  0, NULL),
  (4, 'Puzzle',      4.00, 20, 1.00),
  (5, 'Doll',       15.00,  5, 3.00),
  (6, 'Yo-yo',       3.00, 30, NULL);

Бүт таблица мындай көрүнөт:

idnamepricestockdiscount
1Teddy Bear12.508NULL
2Race Car9.00152.00
3Kite6.500NULL
4Puzzle4.00201.00
5Doll15.0053.00
6Yo-yo3.0030NULL

Алты сап, ал эми discount мамычасында үч чыныгы сан жана үч NULL бар. Муну эсиңизде сактаңыз - COUNT жана AVG үчүн бул маанилүү.

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө