ИМАЩИ в SQL

средната цена

В предишната статия анализирахме GROUP BY в SQL. Там написах, че тази конструкция ви позволява да изберете отделни групи и за всяка група да изчислите функциите, посочени след ИЗБЕРЕТЕ. И ИМА позволява, според резултата от изпълнението на функции, да се филтрират допълнителни редове от групи. Нека анализираме това по-подробно.

Нека си припомним предишния ни проблем, където изчислихме средната цена на млякото за конкретна верига супермаркети. Нека не просто разгледаме средната цена при вас, но и да покажем само онези вериги супермаркети, където средна цена под 38.

За това филтриране въз основа на резултатите от изпълнението на агрегираната функция използвайте в SQL HAVING команда:

ИЗБЕРЕТЕ `shop_id`, AVG (` цена`) ОТ `таблица` GROUP BY` shop_id` ИМАЩЕ AVG (` цена`)

В резултат на това вместо 4 линии, които ще имаме само 3:

Ако конструкциите ГРУПИРАЙ ПО няма, тогава ИМА няма да се прилага за конкретна група, а за цялата извадка. Това означава, че ако състоянието ИМА ще бъде изпълнено, тогава няма да има ефект. И ако не се изпълни, тогава няма да има получен ред.

Използван от ИМАЩИ в SQL не толкова често, колкото другите команди, но е много желателно да се знае и да може да се използва.

Добави към моите приятели Във връзка с: http://vk.com/myrusakov.
Ако искате да оцените мен и работата ми, напишете го в моята група: http://vk.com/rusakovmy.

Препоръчайте тази статия на приятелите си:

Ако сайтът ви е харесал, публикувайте връзка към него (на вашия сайт, във форума, в контакт):

Изглежда така:

  • BB-код на връзката за форуми (например можете да го поставите в подписа):
  • Коментари (1):

    Можете също да добавите, че HAVING е като WHERE, който се използва само за GROUP BY