也就是说:
ID Name Age
1 Bill 23
2 Bill 18
要查出这两条记录
12 个解决方案
#1
select * from tablename as A where
(select count(*) from tablename where name = A.name) > 1
(select count(*) from tablename where name = A.name) > 1
#2
select * from yourtable
group by name
having count(*) > 1
group by name
having count(*) > 1
#3
select name,count(*) as 重复数量 from yourtable
group by name
having count(*) > 1
group by name
having count(*) > 1
#4
select name from tablename group by name,id having count(*)>=2
#5
不好意思,忘了把那个ID给删了。
#6
select * from yourtable as A where
(select count(*) from youtable where name = A.name) > 1
(select count(*) from youtable where name = A.name) > 1
#7
高手太我多了,我就不发言了,比较喜欢 CrazyFor(蚂蚁) 的语句,
#8
select * from yourtable
group by name
加HAVING是什么意思;/
group by name
加HAVING是什么意思;/
#9
HAVING等于是对group by 的语句的where条件,having count(*) > 1,指group by name的每个分组中至少有2条记录。
#10
指定组或聚合的搜索条件。HAVING 只能与 SELECT 语句一起使用。通常在 GROUP BY 子句中使用它。如果不使用 GROUP BY 子句,HAVING 的行为与 WHERE 子句一样。有关更多信息,请参见
#11
用 WHERE 和 HAVING 筛选行
SELECT 语句中的 WHERE 和 HAVING 子句控制用源表中的那些行来构造结果集。WHERE 和 HAVING 是筛选。这两个子句指定指定一系列搜索条件,只有那些满足搜索条件的行才用来构造结果集。我们称满足搜索条件的行符合参与行集的限定条件。例如,下列 SELECT 语句中的 WHERE 子句将限定只选择地区为华盛顿州 (WA) 的行:
SELECT CustomerID, CompanyName
FROM Northwind.dbo.Customers
WHERE Region = 'WA'
HAVING 子句通常与 GROUP BY 子句结合使用,尽管指定该子句时也可以不带 GROUP BY。HAVING 子句指定在应用 WHERE 子句的筛选后要进一步应用的筛选。例如,下列 WHERE 子句仅限定以高于 $100 的单价销售产品的订单,而 HAVING 子句进一步将结果限制为只包括 100 件以上的订单:
SELECT OrdD1.OrderID AS OrderID,
SUM(OrdD1.Quantity) AS "Units Sold",
SUM(OrdD1.UnitPrice * OrdD1.Quantity) AS Revenue
FROM [Order Details] AS OrdD1
WHERE OrdD1.OrderID in (SELECT DISTINCT OrdD2.OrderID
FROM [Order Details] AS OrdD2
WHERE OrdD2.UnitPrice > $100)
GROUP BY OrdD1.OrderID
HAVING SUM(OrdD1.Quantity) > 100
WHERE 和 HAVING 子句中的搜索条件或限定条件可包括:
比较运算符(如 =、< >、< 和 >)。例如,下列查询从 Products 表中检索产品分类为 2 的行:
SELECT ProductID, ProductName
FROM Northwind.dbo.Products
WHERE CategoryID = 2
ORDER BY ProductID
范围(BETWEEN 和 NOT BETWEEN)。例如,下列查询从 Products 表中检索产品分类从 2 到 4 的行:
SELECT CategoryID, ProductID, ProductName
FROM Northwind.dbo.Products
WHERE CategoryID BETWEEN 2 and 4
ORDER BY CategoryID, ProductID
列表(IN、NOT IN)。例如,下列查询从 Products 表中检索产品分类 ID 与列表中某一 ID 匹配的行:
SELECT CategoryID, ProductID, ProductName
FROM Northwind.dbo.Products
WHERE CategoryID IN (1,4,5,7)
ORDER BY CategoryID, ProductID
模式匹配(LIKE 和 NOT LIKE)。例如,下列查询从 Products 表中检索产品名称以 Ch 开头的行:
SELECT CategoryID, ProductID, ProductName
FROM Northwind.dbo.Products
WHERE ProductName LIKE 'Ch%'
ORDER BY CategoryID, ProductID
说明 可用于 text 列的 WHERE 条件只有返回其它数据类型的函数(如 PATINDEX())或运算符(如 IS NULL、IS NOT NULL、LIKE 和 NOT LIKE)。
空值(IS NULL 和 IS NOT NULL)。例如,下列查询从 Customers 表中检索客户地区不为 NULL 的行:
SELECT CompanyName, City, Region, Country
FROM Northwind.dbo.Customers
WHERE Region IS NOT NULL
ORDER BY CompanyName
说明 比较空值时请谨慎从事。例如,指定 = NULL 与指定 IS NULL 是不同的。有关更多信息,请参见空值。
所有记录(=ALL、>ALL、<= ALL、ANY)。例如,下列查询从 Order Details 表中检索装运产品数量大于分类 1 中任意产品的装运数量的订单和产品 ID:
USE Northwind
GO
SELECT OrdD1.OrderID, OrdD1.ProductID
FROM "Order Details" OrdD1
WHERE OrdD1.Quantity > ALL
(SELECT OrdD2.Quantity
FROM "Order Details" OrdD2 JOIN Products Prd
ON OrdD2.ProductID = Prd.ProductID
WHERE Prd.CategoryID = 1)
GO
上述条件的组合(AND、OR、NOT)。例如,下列查询检索库存水平低于再订购点,或来自供应商 15 并属于分类 4 的所有产品:
SELECT ProductID, ProductName
FROM Northwind.dbo.Products
WHERE UnitsInStock < ReorderLevel
OR (SupplierID = 15 AND CategoryID = 4)
说明 当在 WHERE 子句中搜索 Unicode 字符串时,请在搜索字符串之前加字符 N,例如:
SELECT CompanyName, ContactName, Phone, Fax
FROM Northwind.dbo.Customers
WHERE CompanyName = N'Berglunds snabbköp'
SELECT 语句中的 WHERE 和 HAVING 子句控制用源表中的那些行来构造结果集。WHERE 和 HAVING 是筛选。这两个子句指定指定一系列搜索条件,只有那些满足搜索条件的行才用来构造结果集。我们称满足搜索条件的行符合参与行集的限定条件。例如,下列 SELECT 语句中的 WHERE 子句将限定只选择地区为华盛顿州 (WA) 的行:
SELECT CustomerID, CompanyName
FROM Northwind.dbo.Customers
WHERE Region = 'WA'
HAVING 子句通常与 GROUP BY 子句结合使用,尽管指定该子句时也可以不带 GROUP BY。HAVING 子句指定在应用 WHERE 子句的筛选后要进一步应用的筛选。例如,下列 WHERE 子句仅限定以高于 $100 的单价销售产品的订单,而 HAVING 子句进一步将结果限制为只包括 100 件以上的订单:
SELECT OrdD1.OrderID AS OrderID,
SUM(OrdD1.Quantity) AS "Units Sold",
SUM(OrdD1.UnitPrice * OrdD1.Quantity) AS Revenue
FROM [Order Details] AS OrdD1
WHERE OrdD1.OrderID in (SELECT DISTINCT OrdD2.OrderID
FROM [Order Details] AS OrdD2
WHERE OrdD2.UnitPrice > $100)
GROUP BY OrdD1.OrderID
HAVING SUM(OrdD1.Quantity) > 100
WHERE 和 HAVING 子句中的搜索条件或限定条件可包括:
比较运算符(如 =、< >、< 和 >)。例如,下列查询从 Products 表中检索产品分类为 2 的行:
SELECT ProductID, ProductName
FROM Northwind.dbo.Products
WHERE CategoryID = 2
ORDER BY ProductID
范围(BETWEEN 和 NOT BETWEEN)。例如,下列查询从 Products 表中检索产品分类从 2 到 4 的行:
SELECT CategoryID, ProductID, ProductName
FROM Northwind.dbo.Products
WHERE CategoryID BETWEEN 2 and 4
ORDER BY CategoryID, ProductID
列表(IN、NOT IN)。例如,下列查询从 Products 表中检索产品分类 ID 与列表中某一 ID 匹配的行:
SELECT CategoryID, ProductID, ProductName
FROM Northwind.dbo.Products
WHERE CategoryID IN (1,4,5,7)
ORDER BY CategoryID, ProductID
模式匹配(LIKE 和 NOT LIKE)。例如,下列查询从 Products 表中检索产品名称以 Ch 开头的行:
SELECT CategoryID, ProductID, ProductName
FROM Northwind.dbo.Products
WHERE ProductName LIKE 'Ch%'
ORDER BY CategoryID, ProductID
说明 可用于 text 列的 WHERE 条件只有返回其它数据类型的函数(如 PATINDEX())或运算符(如 IS NULL、IS NOT NULL、LIKE 和 NOT LIKE)。
空值(IS NULL 和 IS NOT NULL)。例如,下列查询从 Customers 表中检索客户地区不为 NULL 的行:
SELECT CompanyName, City, Region, Country
FROM Northwind.dbo.Customers
WHERE Region IS NOT NULL
ORDER BY CompanyName
说明 比较空值时请谨慎从事。例如,指定 = NULL 与指定 IS NULL 是不同的。有关更多信息,请参见空值。
所有记录(=ALL、>ALL、<= ALL、ANY)。例如,下列查询从 Order Details 表中检索装运产品数量大于分类 1 中任意产品的装运数量的订单和产品 ID:
USE Northwind
GO
SELECT OrdD1.OrderID, OrdD1.ProductID
FROM "Order Details" OrdD1
WHERE OrdD1.Quantity > ALL
(SELECT OrdD2.Quantity
FROM "Order Details" OrdD2 JOIN Products Prd
ON OrdD2.ProductID = Prd.ProductID
WHERE Prd.CategoryID = 1)
GO
上述条件的组合(AND、OR、NOT)。例如,下列查询检索库存水平低于再订购点,或来自供应商 15 并属于分类 4 的所有产品:
SELECT ProductID, ProductName
FROM Northwind.dbo.Products
WHERE UnitsInStock < ReorderLevel
OR (SupplierID = 15 AND CategoryID = 4)
说明 当在 WHERE 子句中搜索 Unicode 字符串时,请在搜索字符串之前加字符 N,例如:
SELECT CompanyName, ContactName, Phone, Fax
FROM Northwind.dbo.Customers
WHERE CompanyName = N'Berglunds snabbköp'
#12
select * from yourtable
group by name
having count(*) > 1
有误,应该为
select * from yourtable a,
( select name yourtable
group by name
having count(*) > 1 ) b
where a.name = b.name
group by name
having count(*) > 1
有误,应该为
select * from yourtable a,
( select name yourtable
group by name
having count(*) > 1 ) b
where a.name = b.name
#1
select * from tablename as A where
(select count(*) from tablename where name = A.name) > 1
(select count(*) from tablename where name = A.name) > 1
#2
select * from yourtable
group by name
having count(*) > 1
group by name
having count(*) > 1
#3
select name,count(*) as 重复数量 from yourtable
group by name
having count(*) > 1
group by name
having count(*) > 1
#4
select name from tablename group by name,id having count(*)>=2
#5
不好意思,忘了把那个ID给删了。
#6
select * from yourtable as A where
(select count(*) from youtable where name = A.name) > 1
(select count(*) from youtable where name = A.name) > 1
#7
高手太我多了,我就不发言了,比较喜欢 CrazyFor(蚂蚁) 的语句,
#8
select * from yourtable
group by name
加HAVING是什么意思;/
group by name
加HAVING是什么意思;/
#9
HAVING等于是对group by 的语句的where条件,having count(*) > 1,指group by name的每个分组中至少有2条记录。
#10
指定组或聚合的搜索条件。HAVING 只能与 SELECT 语句一起使用。通常在 GROUP BY 子句中使用它。如果不使用 GROUP BY 子句,HAVING 的行为与 WHERE 子句一样。有关更多信息,请参见
#11
用 WHERE 和 HAVING 筛选行
SELECT 语句中的 WHERE 和 HAVING 子句控制用源表中的那些行来构造结果集。WHERE 和 HAVING 是筛选。这两个子句指定指定一系列搜索条件,只有那些满足搜索条件的行才用来构造结果集。我们称满足搜索条件的行符合参与行集的限定条件。例如,下列 SELECT 语句中的 WHERE 子句将限定只选择地区为华盛顿州 (WA) 的行:
SELECT CustomerID, CompanyName
FROM Northwind.dbo.Customers
WHERE Region = 'WA'
HAVING 子句通常与 GROUP BY 子句结合使用,尽管指定该子句时也可以不带 GROUP BY。HAVING 子句指定在应用 WHERE 子句的筛选后要进一步应用的筛选。例如,下列 WHERE 子句仅限定以高于 $100 的单价销售产品的订单,而 HAVING 子句进一步将结果限制为只包括 100 件以上的订单:
SELECT OrdD1.OrderID AS OrderID,
SUM(OrdD1.Quantity) AS "Units Sold",
SUM(OrdD1.UnitPrice * OrdD1.Quantity) AS Revenue
FROM [Order Details] AS OrdD1
WHERE OrdD1.OrderID in (SELECT DISTINCT OrdD2.OrderID
FROM [Order Details] AS OrdD2
WHERE OrdD2.UnitPrice > $100)
GROUP BY OrdD1.OrderID
HAVING SUM(OrdD1.Quantity) > 100
WHERE 和 HAVING 子句中的搜索条件或限定条件可包括:
比较运算符(如 =、< >、< 和 >)。例如,下列查询从 Products 表中检索产品分类为 2 的行:
SELECT ProductID, ProductName
FROM Northwind.dbo.Products
WHERE CategoryID = 2
ORDER BY ProductID
范围(BETWEEN 和 NOT BETWEEN)。例如,下列查询从 Products 表中检索产品分类从 2 到 4 的行:
SELECT CategoryID, ProductID, ProductName
FROM Northwind.dbo.Products
WHERE CategoryID BETWEEN 2 and 4
ORDER BY CategoryID, ProductID
列表(IN、NOT IN)。例如,下列查询从 Products 表中检索产品分类 ID 与列表中某一 ID 匹配的行:
SELECT CategoryID, ProductID, ProductName
FROM Northwind.dbo.Products
WHERE CategoryID IN (1,4,5,7)
ORDER BY CategoryID, ProductID
模式匹配(LIKE 和 NOT LIKE)。例如,下列查询从 Products 表中检索产品名称以 Ch 开头的行:
SELECT CategoryID, ProductID, ProductName
FROM Northwind.dbo.Products
WHERE ProductName LIKE 'Ch%'
ORDER BY CategoryID, ProductID
说明 可用于 text 列的 WHERE 条件只有返回其它数据类型的函数(如 PATINDEX())或运算符(如 IS NULL、IS NOT NULL、LIKE 和 NOT LIKE)。
空值(IS NULL 和 IS NOT NULL)。例如,下列查询从 Customers 表中检索客户地区不为 NULL 的行:
SELECT CompanyName, City, Region, Country
FROM Northwind.dbo.Customers
WHERE Region IS NOT NULL
ORDER BY CompanyName
说明 比较空值时请谨慎从事。例如,指定 = NULL 与指定 IS NULL 是不同的。有关更多信息,请参见空值。
所有记录(=ALL、>ALL、<= ALL、ANY)。例如,下列查询从 Order Details 表中检索装运产品数量大于分类 1 中任意产品的装运数量的订单和产品 ID:
USE Northwind
GO
SELECT OrdD1.OrderID, OrdD1.ProductID
FROM "Order Details" OrdD1
WHERE OrdD1.Quantity > ALL
(SELECT OrdD2.Quantity
FROM "Order Details" OrdD2 JOIN Products Prd
ON OrdD2.ProductID = Prd.ProductID
WHERE Prd.CategoryID = 1)
GO
上述条件的组合(AND、OR、NOT)。例如,下列查询检索库存水平低于再订购点,或来自供应商 15 并属于分类 4 的所有产品:
SELECT ProductID, ProductName
FROM Northwind.dbo.Products
WHERE UnitsInStock < ReorderLevel
OR (SupplierID = 15 AND CategoryID = 4)
说明 当在 WHERE 子句中搜索 Unicode 字符串时,请在搜索字符串之前加字符 N,例如:
SELECT CompanyName, ContactName, Phone, Fax
FROM Northwind.dbo.Customers
WHERE CompanyName = N'Berglunds snabbköp'
SELECT 语句中的 WHERE 和 HAVING 子句控制用源表中的那些行来构造结果集。WHERE 和 HAVING 是筛选。这两个子句指定指定一系列搜索条件,只有那些满足搜索条件的行才用来构造结果集。我们称满足搜索条件的行符合参与行集的限定条件。例如,下列 SELECT 语句中的 WHERE 子句将限定只选择地区为华盛顿州 (WA) 的行:
SELECT CustomerID, CompanyName
FROM Northwind.dbo.Customers
WHERE Region = 'WA'
HAVING 子句通常与 GROUP BY 子句结合使用,尽管指定该子句时也可以不带 GROUP BY。HAVING 子句指定在应用 WHERE 子句的筛选后要进一步应用的筛选。例如,下列 WHERE 子句仅限定以高于 $100 的单价销售产品的订单,而 HAVING 子句进一步将结果限制为只包括 100 件以上的订单:
SELECT OrdD1.OrderID AS OrderID,
SUM(OrdD1.Quantity) AS "Units Sold",
SUM(OrdD1.UnitPrice * OrdD1.Quantity) AS Revenue
FROM [Order Details] AS OrdD1
WHERE OrdD1.OrderID in (SELECT DISTINCT OrdD2.OrderID
FROM [Order Details] AS OrdD2
WHERE OrdD2.UnitPrice > $100)
GROUP BY OrdD1.OrderID
HAVING SUM(OrdD1.Quantity) > 100
WHERE 和 HAVING 子句中的搜索条件或限定条件可包括:
比较运算符(如 =、< >、< 和 >)。例如,下列查询从 Products 表中检索产品分类为 2 的行:
SELECT ProductID, ProductName
FROM Northwind.dbo.Products
WHERE CategoryID = 2
ORDER BY ProductID
范围(BETWEEN 和 NOT BETWEEN)。例如,下列查询从 Products 表中检索产品分类从 2 到 4 的行:
SELECT CategoryID, ProductID, ProductName
FROM Northwind.dbo.Products
WHERE CategoryID BETWEEN 2 and 4
ORDER BY CategoryID, ProductID
列表(IN、NOT IN)。例如,下列查询从 Products 表中检索产品分类 ID 与列表中某一 ID 匹配的行:
SELECT CategoryID, ProductID, ProductName
FROM Northwind.dbo.Products
WHERE CategoryID IN (1,4,5,7)
ORDER BY CategoryID, ProductID
模式匹配(LIKE 和 NOT LIKE)。例如,下列查询从 Products 表中检索产品名称以 Ch 开头的行:
SELECT CategoryID, ProductID, ProductName
FROM Northwind.dbo.Products
WHERE ProductName LIKE 'Ch%'
ORDER BY CategoryID, ProductID
说明 可用于 text 列的 WHERE 条件只有返回其它数据类型的函数(如 PATINDEX())或运算符(如 IS NULL、IS NOT NULL、LIKE 和 NOT LIKE)。
空值(IS NULL 和 IS NOT NULL)。例如,下列查询从 Customers 表中检索客户地区不为 NULL 的行:
SELECT CompanyName, City, Region, Country
FROM Northwind.dbo.Customers
WHERE Region IS NOT NULL
ORDER BY CompanyName
说明 比较空值时请谨慎从事。例如,指定 = NULL 与指定 IS NULL 是不同的。有关更多信息,请参见空值。
所有记录(=ALL、>ALL、<= ALL、ANY)。例如,下列查询从 Order Details 表中检索装运产品数量大于分类 1 中任意产品的装运数量的订单和产品 ID:
USE Northwind
GO
SELECT OrdD1.OrderID, OrdD1.ProductID
FROM "Order Details" OrdD1
WHERE OrdD1.Quantity > ALL
(SELECT OrdD2.Quantity
FROM "Order Details" OrdD2 JOIN Products Prd
ON OrdD2.ProductID = Prd.ProductID
WHERE Prd.CategoryID = 1)
GO
上述条件的组合(AND、OR、NOT)。例如,下列查询检索库存水平低于再订购点,或来自供应商 15 并属于分类 4 的所有产品:
SELECT ProductID, ProductName
FROM Northwind.dbo.Products
WHERE UnitsInStock < ReorderLevel
OR (SupplierID = 15 AND CategoryID = 4)
说明 当在 WHERE 子句中搜索 Unicode 字符串时,请在搜索字符串之前加字符 N,例如:
SELECT CompanyName, ContactName, Phone, Fax
FROM Northwind.dbo.Customers
WHERE CompanyName = N'Berglunds snabbköp'
#12
select * from yourtable
group by name
having count(*) > 1
有误,应该为
select * from yourtable a,
( select name yourtable
group by name
having count(*) > 1 ) b
where a.name = b.name
group by name
having count(*) > 1
有误,应该为
select * from yourtable a,
( select name yourtable
group by name
having count(*) > 1 ) b
where a.name = b.name