检索最常用的10条记录

时间:2013-12-25 10:14:04

标签: sql sql-server select sql-order-by limit

我想检索数据库中字段中最常用的10条记录。我使用了这个查询,但它没有用!

select Top 10 tag from articles order by count(tag) desc ;  

这是我得到的错误:

  

列'article.tags'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。

3 个答案:

答案 0 :(得分:3)

试试这个:

SELECT TOP 10 tag, COUNT(tag) tagCount
FROM articles 
GROUP BY tag
ORDER BY tagCount DESC

答案 1 :(得分:2)

Select TOP 10 tag From
(
Select tag,count(*) as total
From articles
Group by tag

) z
order by total Desc

答案 2 :(得分:0)

您无法通过简单的select top语句进行识别。我建议你再涉及一个表来跟踪大多数选定记录的id,如下所示:

ArticleId Counter LastUsed
--------------------------
1           5     11/12/2013
3           11    10/12/2013    // and so on

使用此表连接主表并根据其计数器选择最常用的前10个ID。

Select * From MainTable Where ArticleId in (
    Select Top(10) ArticleId
    From Table
    Order By Counter Desc)