具有重复记录的SQL查询

nav*_*100 5 sql

我试图在SQL服务器中编写一个查询,以查明customerID对每个客户是否有多行.请告诉我.

这是表结构

Customer table
-----------------------------------------
orderID          CustName      CustomerID
---------------------------------------
100               test           123456    
101               test           123456

Orders table
------------------------------------
pID               OrderID
-----------------------------------
1                 100        
2                 101
Run Code Online (Sandbox Code Playgroud)

Red*_*ter 16

您可以使用GROUP BY查询来实现此目的:

select CustomerID, count(*) as NumDuplicates
from Customer
group by CustomerID
having count(*) > 1
Run Code Online (Sandbox Code Playgroud)


Fru*_*ner 5

要查看您拥有的每位客户的数量:

SELECT COUNT(*), CustName, CustomerID
from Customer
Group by CustName, CustomerID
Run Code Online (Sandbox Code Playgroud)

您可以使用having子句来限制重复:

SELECT COUNT(*), CustName, CustomerID
from Customer
Group by CustName, CustomerID
having count(*) > 1
Run Code Online (Sandbox Code Playgroud)

UPDATE

要获得成功订单的人:

select count(*), CustName, CustomerID
from(
  SELECT CustName, CustomerID
  from Customer, orders
  where customer.orderID = orders.orderID
  and orders.success = 1) subquery
group by subquery.CustName, subquery.CustomerID
having count(*) > 1; 
Run Code Online (Sandbox Code Playgroud)