当前位置: 首页 > 面试题库 >

检索排名前10的行,并对第11行中的所有其他行求和

蒋哲
2023-03-14
问题内容

我有以下查询,用于检索每个国家/地区的用户数;

SELECT C.CountryID AS CountryID, 
       C.CountryName AS Country, 
       Count(FirstName) AS Origin
FROM Users AS U
INNER JOIN Country AS C ON C.CountryID = U.CountryOfOrgin
GROUP BY CASE C.CountryName, 
              C.CountryID

我需要的是获得前10名,然后将所有其他用户汇总到一行的一种方法。我知道如何获得前10名,但我坚持将剩下的人排成一排。有没有简单的方法可以做到这一点?

例如,如果上面的查询返回17条记录,则显示前十名,并且其余7个国家/地区的用户总数应显示在第11行上。在该行11上,countryid为0,countryname
Others

谢谢你的帮助!


问题答案:

您没有指定排名前10位的方式,所以我假设最高的排名更高?

With TopItems As
    (
    SELECT C.CountryID AS CountryID
            , C.CountryName AS Country
            , Count(FirstName) AS Origin
            , ROW_NUMBER() OVER( ORDER BY Count(FirstName) DESC ) As Num
    FROM Users AS U
        JOIN Country AS C 
            ON C.CountryID = U.CountryOfOrgin
    GROUP BY C.CountryName, C.CountryID
    )
Select CountryId, Country, Origin
From TopItems
Where Num <= 10
Union ALL
Select 0, 'Others', Sum(Origin)
From TopItems
Where Num > 10


 类似资料:
  • 问题内容: 我想检索限制为0,x的特定用户的所有行。 所以我只想问问有没有办法在不调用返回x&的count(id)的方法的情况下检索mysql中的所有行,而不会重载在查询和withour string中完全没有限制的现有函数的重载。 )功能。 因为在内部,当我们选中“显示所有”复选框时,mysql可能会使用它,然后显示taht表的所有行 问题答案: 一个简单的解决方案是将int的最大范围发送到方法

  • 本文向大家介绍删除一行并在MySQL中使用正确的ID对其他行重新排序?,包括了删除一行并在MySQL中使用正确的ID对其他行重新排序?的使用技巧和注意事项,需要的朋友参考一下 为了理解这个概念,让我们首先创建一个表。创建表的查询如下 使用insert命令在表中插入一些记录。查询如下- 使用select语句显示表中的所有记录。查询如下- 以下是输出 首先从表中删除一行,然后使用update命令对其他

  • 我有: 三个表:、和. CursorLoader和CursorAdapter:和. ListView:一个简单的ListView. 是否可以坚持使用并使用另一个表中的列实现对的排序?

  • 我有一个recyclerview和一堆textview,每一个都是一个项目,就像你在下面的图片中看到的。(蓝线并不是真的存在,我添加了它们,这样你就可以分别看到每一个项目)因为你可以看到一切看起来都很好,用户不会注意到文本是分开的。 问题是当用户增加行空间(应用程序中的一个典型选项)时,行高会变大,除了每个项目的第一行和最后一行,结果看起来像第二张图片。 我的问题是如何找到适当的填充设置到每一个项

  • 问题内容: 我正在Linux上工作。我有2个文件-file1.dat和file2.dat。 对于file2: 我想用file2.dat的前3行替换file1.dat的前4行。所以我的输出如下 我尝试了以下输入: 但是使用此输入,我有以下输出: 我应该如何修改输入命令?我尝试了各种组合。 问题答案: 是你的朋友 脚本 输出量 提示 NR-已处理的记录总数 FNR-处理的记录总数,但在读取新文件时会重

  • 我已经能够得到这个数组,因此它是使用' m '排序的,但是结果是按保护顺序排序的——因为所有包含' m '的字符串都在末尾。 我的打印输出显示:; 我考虑过使用indexOf(),但我还没能找到一种方法让它工作。 非常感谢您的建议!