SQL查询:查找在给定年份内购买了多本书的客户

SQL查询:查找在给定年份内购买了多本书的客户,sql,Sql,这是数据库模式: Books (bookid, title, author, year) Customers (customerid, name, email) Purchases (customerid, bookid, year) Reviews (customerid, bookid, rating) Pricing (bookid, format, price) 我如何找到在2003年购买了不止一本书的客户显示他们的姓名和电子邮件地址?与您的英语问题措辞非常相似。。。刚刚翻译成SQL

这是数据库模式:

Books (bookid, title, author, year)
Customers (customerid, name, email)
Purchases (customerid, bookid, year)
Reviews (customerid, bookid, rating)
Pricing (bookid, format, price)

我如何找到在2003年购买了不止一本书的客户显示他们的姓名和电子邮件地址?

与您的英语问题措辞非常相似。。。刚刚翻译成SQL

Select * From Customers C
Where (Select Count(*) From Purchases
       Where customerid = C.customerid
           And Year = 2003) > 1
还有一种选择:

select
  cu.name
 ,cu.email
 ,count(*) as books_purchased
from
  customers cu
 ,purchases pu
where cu.customerid = pu.customerid
  and pu.year = 2003
group by
  cu.name
 ,cu.email
having
  count(*) > 1

你忘记了GROUPBY子句,但除此之外,这是迄今为止最好的答案删除了我自己的答案,因为我看错了问题,而你的答案是正确的+1给你,还有你的woorks+祝你好运。
select
  cu.name
 ,cu.email
 ,count(*) as books_purchased
from
  customers cu
 ,purchases pu
where cu.customerid = pu.customerid
  and pu.year = 2003
group by
  cu.name
 ,cu.email
having
  count(*) > 1