Adventure Works 2014 SQL 查询
Adventure Works 2014 SQL Queries
我正在使用 Adventure Works 2014 数据库编写 SQL 查询。
我想显示所有客户以及每个客户有多少订单。
我尝试单独编写每个 select 语句(见下文),但我希望能够将两个查询合并为一个。
select s.CustomerID ,p.FirstName +' '+p.LastName as Name
from Sales.Customer s,Person.Person p
where s.CustomerID=p.BusinessEntityID
order by s.CustomerID
select CustomerID ,count(SalesOrderID) as OrdersCount
from Sales.SalesOrderHeader
group by CustomerID
SELECT s.CustomerID ,
p.FirstName +' '+p.LastName as Name,
count(SalesOrderID)
FROM Sales.Customer s
JOIN Person.Person p
ON s.CustomerID=p.BusinessEntityID
LEFT JOIN Sales.SalesOrderHeader so
ON s.Customer_ID = so.Customer_ID
GROUP BY s.CustomerID ,
p.FirstName +' '+p.LastName as Name
order by s.CustomerID
我添加 CONCAT 可能只是对你来说是新的东西。无论如何,OVER(PARTITION BY column_name) 子句被用作 GROUP BY 的替代品,因为您打印的列比 GROUP BY 子句所允许的要多。
Table Sales.Customer
References:Person.人(PersonID -> BusinessEntityID)
SELECT s.CustomerID
,p.FirstName +' '+p.LastName as Name
,COUNT(so.SalesOrderDetailID)
FROM Sales.Customer s
JOIN Person.Person p
ON s.PersonID=p.BusinessEntityID
LEFT JOIN Sales.SalesOrderHeader h
ON h.CustomerID = s.CustomerID
LEFT JOIN Sales.SalesOrderDetail so
ON so.SalesOrderID = h.SalesOrderID
GROUP BY s.CustomerID ,
p.FirstName +' '+p.LastName
order by s.CustomerID
我正在使用 Adventure Works 2014 数据库编写 SQL 查询。
我想显示所有客户以及每个客户有多少订单。
我尝试单独编写每个 select 语句(见下文),但我希望能够将两个查询合并为一个。
select s.CustomerID ,p.FirstName +' '+p.LastName as Name
from Sales.Customer s,Person.Person p
where s.CustomerID=p.BusinessEntityID
order by s.CustomerID
select CustomerID ,count(SalesOrderID) as OrdersCount
from Sales.SalesOrderHeader
group by CustomerID
SELECT s.CustomerID ,
p.FirstName +' '+p.LastName as Name,
count(SalesOrderID)
FROM Sales.Customer s
JOIN Person.Person p
ON s.CustomerID=p.BusinessEntityID
LEFT JOIN Sales.SalesOrderHeader so
ON s.Customer_ID = so.Customer_ID
GROUP BY s.CustomerID ,
p.FirstName +' '+p.LastName as Name
order by s.CustomerID
我添加 CONCAT 可能只是对你来说是新的东西。无论如何,OVER(PARTITION BY column_name) 子句被用作 GROUP BY 的替代品,因为您打印的列比 GROUP BY 子句所允许的要多。
Table Sales.Customer References:Person.人(PersonID -> BusinessEntityID)
SELECT s.CustomerID
,p.FirstName +' '+p.LastName as Name
,COUNT(so.SalesOrderDetailID)
FROM Sales.Customer s
JOIN Person.Person p
ON s.PersonID=p.BusinessEntityID
LEFT JOIN Sales.SalesOrderHeader h
ON h.CustomerID = s.CustomerID
LEFT JOIN Sales.SalesOrderDetail so
ON so.SalesOrderID = h.SalesOrderID
GROUP BY s.CustomerID ,
p.FirstName +' '+p.LastName
order by s.CustomerID