【问题标题】:How to find doubles with SQL? [duplicate]如何使用 SQL 查找双打? [复制]
【发布时间】:2012-07-07 12:26:14
【问题描述】:

使用Chinook Test Database我编写了这个SQL语句来显示两个特定客户订购的所有曲目:

SELECT inv.BillingCity,cus.LastName,tra.Name
        FROM invoice AS inv
        JOIN customer AS cus ON inv.CustomerId=cus.CustomerId
        JOIN invoiceline inl ON inv.InvoiceId=inl.InvoiceId
        JOIN track tra ON tra.TrackId=inl.TrackId
        WHERE cus.LastName IN ('Schneider','Schröder')
        ORDER BY inv.BillingCity,cus.LastName,tra.Name

我看到有一个曲目被一位客户订购了两次:

如何编写 SQL 语句来查找这样的双打,即“返回一位客户多次订购的所有曲目”?

【问题讨论】:

  • select BillingCity, lastName, Name from invoice groupe by BillingCity, lastName, Name having count(*) >1

标签: sql


【解决方案1】:

试试这个:

SELECT cus.CustomerId,tra.Name,COUNT(cus.CustomerId) AS tot
       FROM invoice AS inv
       JOIN customer AS cus ON inv.CustomerId=cus.CustomerId
       JOIN invoiceline inl ON inv.InvoiceId=inl.InvoiceId
       JOIN track tra ON tra.TrackId=inl.TrackId
       GROUP BY cus.CustomerId,tra.Name
       HAVING tot > 1

【讨论】:

  • select BillingCity, lastName, Name from invoice groupe by BillingCity, lastName, Name having count(*) >1
猜你喜欢
  • 2019-01-27
  • 1970-01-01
  • 2018-10-06
  • 2020-04-11
  • 2020-10-14
  • 1970-01-01
  • 2016-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多