Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL只输出n行,将其余行分组到n+;第一排_Mysql_Sql_Select_Group By_Aggregate Functions - Fatal编程技术网

MySQL只输出n行,将其余行分组到n+;第一排

MySQL只输出n行,将其余行分组到n+;第一排,mysql,sql,select,group-by,aggregate-functions,Mysql,Sql,Select,Group By,Aggregate Functions,是否可以构建一个SQL查询,只输出n行,并将返回的n+1行的其余列相加 例如,我有两个从sql查询返回的列。第一列是名称,第二列包含计数值。名称是不同的,计数是数字 查询应仅返回3行,如果有3行以上,则应将所有行汇总到第四行,名称为“Others”,其余行的计数汇总到第四行 请帮帮我。提前谢谢 (示例) 表格 名称|值 第一-12 秒-11 第三-9 第四次-15次 第五次-13次 第六次-8次 查询结果 名称|值 第一-12 秒-11 第三-9 其他-36我相信它看起来会像: SELECT D

是否可以构建一个SQL查询,只输出n行,并将返回的n+1行的其余列相加

例如,我有两个从sql查询返回的列。第一列是名称,第二列包含计数值。名称是不同的,计数是数字

查询应仅返回3行,如果有3行以上,则应将所有行汇总到第四行,名称为“Others”,其余行的计数汇总到第四行

请帮帮我。提前谢谢

(示例)
表格
名称|值
第一-12
秒-11
第三-9
第四次-15次
第五次-13次
第六次-8次

查询结果
名称|值
第一-12
秒-11
第三-9

其他-36

我相信它看起来会像:

SELECT DISTINCT TOP 3 Col1, Col2
FROM Table
除非你想让第二列有很多东西,否则它就是

SELECT DISTINCT TOP 3 Col1, Count(Col2) AS "New Name"
FROM Table
GROUP BY Col1
这是假设你只想要前三名。如果确实需要第4行,请使用另一个使用偏移量的select语句进行并集,这样可以选择除前3行以外的所有行

请看,并在顶部、偏移和并集上查找示例


重新阅读问题的第一部分,如果希望更改顶部编号,则很可能需要将其作为一个存储过程,并传递一个控制顶部编号和偏移量的变量。用作参考。

尝试使用“汇总”功能按…分组将n+1行中的所有行计数相加。试试下面的例子

SELECT IFNULL(a.id, 'Other'), SUM(1) ids
FROM tableA 
GROUP BY a.id WITH ROLLUP

有没有任何关于它的尝试的现有研究?有没有理由它必须是一个1查询?我可以这样做,但是对于在2个查询中基本上非常简单的东西来说,这有点麻烦。两个带有临时表的查询也可以。我只是想大致了解一下如何实现这一目标。谢谢
Could you try something like this :

select case(name) 
    when 'First' THEN 'First'
    when 'Second' THEN 'Second'
    when 'Third' THEN 'Third'
    else 'Others'
end name, sum(value) value
from table
group by case(name) 
    when 'First' THEN 'First'
    when 'Second' THEN 'Second'
    when 'Third' THEN 'Third'
    else 'Others'