SQL 查询计算特定年份的 >2 个订单
SQL Query for counting >2 orders in a particular year
我有两张桌子。 salesreps
列:SRepID、SRepName、SRepPhone
orders
列:OrderID、CustomerID、SRepID、OrderDate
我需要return所有在2019年至少处理过两个订单的SRepName。
我完全迷失在这个问题上,希望朝着正确的方向前进。
我在 SQL Workbench 中这样做。
您可以使用相关子查询来计算每个销售代表的订单数量:
select s.*
from salesrep s
where (
select count(*)
from orders o
where
o.repId = s.sRepId
and o.orderDate >= '2019-01-01'
and o.orderDate < '2020-01-01'
) >= 2
或者您可以使用聚合。这要求您枚举您想要 return 的列,但也让您可以对订单使用聚合函数:
select
s.sRepId,
s.sRepName,
count(*) no_orders,
max(o.OrderDate) last_order_date
from salesrep s
inner join orders o on o.repId = s.sRepId
where o.orderDate >= '2019-01-01' and o.orderDate < '2020-01-01'
group by s.sRepId, s.sRepName
having count(*) > 1
select SRepName from salesReps
inner join Orders on salesReps.SRepID = orders.SRepID
where orderDate >= '2019-01-01' and orderDate < '2020-01-01'
group by sRepName
having count(OrderId) >1
select SRepName
,count(OrderID)
from salesreps s
inner join orders o
on s.SRepID = o.SRepID
where year(OrderDate) = '2019'
group by SRepName
having count(OrderID) >= 2
我有两张桌子。 salesreps
列:SRepID、SRepName、SRepPhone
orders
列:OrderID、CustomerID、SRepID、OrderDate
我需要return所有在2019年至少处理过两个订单的SRepName。
我完全迷失在这个问题上,希望朝着正确的方向前进。
我在 SQL Workbench 中这样做。
您可以使用相关子查询来计算每个销售代表的订单数量:
select s.*
from salesrep s
where (
select count(*)
from orders o
where
o.repId = s.sRepId
and o.orderDate >= '2019-01-01'
and o.orderDate < '2020-01-01'
) >= 2
或者您可以使用聚合。这要求您枚举您想要 return 的列,但也让您可以对订单使用聚合函数:
select
s.sRepId,
s.sRepName,
count(*) no_orders,
max(o.OrderDate) last_order_date
from salesrep s
inner join orders o on o.repId = s.sRepId
where o.orderDate >= '2019-01-01' and o.orderDate < '2020-01-01'
group by s.sRepId, s.sRepName
having count(*) > 1
select SRepName from salesReps
inner join Orders on salesReps.SRepID = orders.SRepID
where orderDate >= '2019-01-01' and orderDate < '2020-01-01'
group by sRepName
having count(OrderId) >1
select SRepName
,count(OrderID)
from salesreps s
inner join orders o
on s.SRepID = o.SRepID
where year(OrderDate) = '2019'
group by SRepName
having count(OrderID) >= 2