-
Notifications
You must be signed in to change notification settings - Fork 1
3.1 WHERE x HAVING
Adriane Ribeiro edited this page Nov 18, 2022
·
3 revisions
-
HAVINGé utilizado após oWHERE. - Para filtrar dados,
WHEREé mais eficiente, dessa forma:
Usar WHERE para filtrar registros em vez de having.
Usar having para agregar dados.
# [RUIM]
# Carrega os dados, para depois filtrar
SELECT Customers.CustomerID, Customers.Name, Count(Sales.SalesID)
FROM Customers
INNER JOIN Sales
ON Customers.CustomerID = Sales.CustomerID
GROUP BY Customers.CustomerID, Customers.Name
HAVING Sales.LastSaleDate BETWEEN '1/1/2016' AND '12/31/2016'
# [BOM]
SELECT Customers.CustomerID, Customers.Name, Count(Sales.SalesID)
FROM Customers
INNER JOIN Sales
ON Customers.CustomerID = Sales.CustomerID
WHERE Sales.LastSaleDate BETWEEN '1/1/2016' AND '12/31/2016'
GROUP BY Customers.CustomerID, Customers.Name
# Uso correto do having
SELECT Customers.CustomerID, Customers.Name, Count(Sales.SalesID)
FROM Customers
INNER JOIN Sales
ON Customers.CustomerID = Sales.CustomerID
WHERE Sales.LastSaleDate BETWEEN '1/1/2016' AND '12/31/2016'
GROUP BY Customers.CustomerID, Customers.Name
HAVING Count(Sales.SalesID) > 5