代码之家  ›  专栏  ›  技术社区  ›  Maksim Vi.

SQL选择最频繁的记录

  •  5
  • Maksim Vi.  · 技术社区  · 15 年前

    我有下表:

    Table
    +----+------+-------+
    | ID | Name | Group |
    +----+------+-------+
    | 0  |   a  |   1   | 
    | 1  |   a  |   1   | 
    | 2  |   a  |   2   |
    | 3  |   a  |   1   |
    | 4  |   b  |   1   |
    | 5  |   b  |   2   |
    | 6  |   b  |   1   |
    | 7  |   c  |   2   |
    | 8  |   c  |   2   |
    | 9  |   c  |   1   |
    +----+------+-------+
    

    我想从按该组中最频繁的名称排序的特定组中选择前20个不同的名称。组1的这个示例的结果将返回 a b c ( A-3次,B-2次,C-1次)。

    谢谢您。

    3 回复  |  直到 15 年前
        1
  •  13
  •   Mark Byers    15 年前
    SELECT TOP(20) [Name], Count(*) FROM Table
    WHERE [Group] = 1
    GROUP BY [Name]
    ORDER BY Count(*) DESC
    
        2
  •  5
  •   Markus Hi    15 年前
    SELECT Top(20) 
       name, group, count(*) as occurences
    FROM yourtable
    GROUP BY name, group
    ORDER BY count(*) desc
    
        3
  •  2
  •   David Hedlund    15 年前
    SELECT
        TOP 20
        Name,
        Group,
        COUNT(1) Count,
    FROM
        MyTable
    GROUP BY
        Name,
        Group
    ORDER BY
        Count DESC