Jump to content

Имея (SQL)

А HAVING Предложение в SQL указывает, что SQL SELECT Оператор должен возвращать только те строки, где совокупные значения соответствуют указанным условиям . [1] : 125–127 

Использовать

[ редактировать ]

HAVING и WHERE новички часто путают их, но они служат разным целям. WHERE учитывается на более раннем этапе выполнения запроса, фильтруя считанные из таблиц строки. Если запрос содержит GROUP BY, строки из таблиц группируются и агрегируются. После операции суммирования HAVING применяется, отфильтровывая строки, не соответствующие указанным условиям. Поэтому, WHERE применяется к данным, считанным из таблиц, и HAVING следует применять только к агрегированным данным, которые неизвестны на начальном этапе запроса.

Чтобы просмотреть текущее состояние, сформированное GROUP BY пункт, HAVING используется оговорка. [ нужны разъяснения ]

Чтобы вернуть список идентификаторов отделов, общий объем продаж которых превысил 1000 долларов США на дату 1 января 2000 г., а также сумму их продаж на эту дату:

SELECT DeptID, SUM(SaleAmount)
FROM Sales
WHERE SaleDate = '2000-01-01'
GROUP BY DeptID
HAVING SUM(SaleAmount) > 1000

Ссылаясь на примеры таблиц в объединения примере , следующий запрос вернет список отделов, в которых работает более 1 сотрудника:

SELECT DepartmentName, COUNT(*) 
FROM Employee
JOIN Department ON Employee.DepartmentID = Department.DepartmentID 
GROUP BY DepartmentName
HAVING COUNT(*) > 1;

HAVING удобно, но не обязательно. Код, эквивалентный приведенному выше примеру, но без использования HAVING, может выглядеть так:

SELECT * FROM (
    SELECT DepartmentName AS deptNam, COUNT(*) AS empCount
    FROM Employee AS emp
    JOIN Department AS dept ON emp.DepartmentID = dept.DepartmentID
    GROUP BY deptNam
) AS grp
WHERE grp.empCount > 1;
  1. ^ Документация PostgreSQL 16.1 (PDF) . Группа глобального развития PostgreSQL. 2023 . Проверено 8 февраля 2024 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 11f50491d3a5be71533b2f83af6e91a3__1707357420
URL1:https://arc.ask3.ru/arc/aa/11/a3/11f50491d3a5be71533b2f83af6e91a3.html
Заголовок, (Title) документа по адресу, URL1:
Having (SQL) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)