我有一个表有单个字段。和它有一个值(3,7,9,11,7,11) 现在我想要一个查询将选择发生的次数最少的值,如果有一个与最小出现次数相等的然后使用最小的数字SQL:从出现最少次数的列中检索值
在这种情况下,答案是3
我有一个表有单个字段。和它有一个值(3,7,9,11,7,11) 现在我想要一个查询将选择发生的次数最少的值,如果有一个与最小出现次数相等的然后使用最小的数字SQL:从出现最少次数的列中检索值
在这种情况下,答案是3
事情是这样的:
SELECT TOP 1 COUNT(*), myField
FROM myTable
GROUP BY (myField)
ORDER BY COUNT(*) ASC
补充:而要考虑到抢七的情况:
SELECT TOP 1 COUNT(*), myField
FROM myTable
GROUP BY (myField)
ORDER BY COUNT(*) ASC, myField ASC
在MySQL
和PostgreSQL
:
SELECT *
FROM (
SELECT field, COUNT(*) AS cnt
FROM mytable
GROUP BY
field
) q
ORDER BY
cnt, field
LIMIT 1
假设你正在使用SQL Server:如果你有最少的频繁数的关系,并希望一切关系返回,那么你可以做这样的事情:
DECLARE @temp table (
count int,
myField int
)
INSERT @temp
SELECT COUNT(*), myField
FROM myTable
GROUP BY (myField)
DECLARE @minCount int
SELECT @minCount = MIN(count)
FROM @temp
SELECT count, myField
FROM @temp
WHERE count = @minCount
“最小权重”是什么意思? – 2009-07-13 11:17:19
最小权重意味着该值应该是最小值 – Santanu 2009-07-13 11:17:59
因此,在出现最少次数的情况下,它也必须是最小值。你是这个意思吗? – 2009-07-13 11:19:45