问题是关于示例表结构的:
mytable
fielda, fieldb
val1 valx
val2 valy
val3 valz
val1 vala我想用一个查询从mytable中选择:
fielda, fieldb
val1 valx
val1 vala基本上是从复制了fielda的表中选择*。
然后使用不同的查询从mytable中选择
fielda, fieldb
val2 valy
val3 valzfielda上的val1是重复的,因此它没有被选中,其余的都被选中了。
发布于 2012-10-27 23:32:29
此查询对位于列表顶部的重复fieldA的表进行排序。
SELECT a.*
FROM tableName a
INNER JOIN
(
SELECT fieldA, COUNT(*) totalCount
FROM tableName
GROUP BY fieldA
) b ON a.fieldA = b.fieldA
ORDER BY b.totalCount DESC此查询仅选择重复记录。
SELECT a.*
FROM tableName a
INNER JOIN
(
SELECT fieldA, COUNT(*) totalCount
FROM tableName
GROUP BY fieldA
) b ON a.fieldA = b.fieldA
WHERE b.totalCount > 1
ORDER BY b.totalCount DESC这个查询选择的记录不在第二个查询中(上面)
SELECT a.*
FROM tableName a
INNER JOIN
(
SELECT fieldA, COUNT(*) totalCount
FROM tableName
GROUP BY fieldA
) b ON a.fieldA = b.fieldA
WHERE b.totalCount = 1
ORDER BY b.totalCount DESC发布于 2012-10-27 23:31:34
select fielda, fieldb from mytable group by fielda having count(*) >1
select fielda, fieldb from mytable group by fielda having count(*) =1发布于 2012-10-27 23:32:04
对于第一个:
计数(*)>1的
SELECT * FROM tbl GROUP BY fielda
对于第二个:
从tbl中选择DISTINCT(fielda)
https://stackoverflow.com/questions/13101511
复制相似问题