首页 > 数据库 > mysql教程 > 如何在 SQL 中根据计数追加行并按顺序编号?

如何在 SQL 中根据计数追加行并按顺序编号?

Patricia Arquette
发布: 2025-01-06 14:15:41
原创
535 人浏览过

How to Append Rows and Sequentially Number Them in SQL Based on a Count?

在 SQL 中追加行和编号结果

如何扩展结果集以包含计数大于的每行的多行1、按顺序编号?例如,考虑下表中的值和计数:

Value Count
foo 1
bar 3
baz 2

我们所需的输出将是:

Value Count Index
foo 1 1
bar 3 1
bar 3 2
bar 3 3
baz 2 1
baz 2 2

要实现这种跨数据库兼容性,请考虑使用“Numbers” table:

SELECT value, count, number
FROM table
JOIN Numbers
ON table.count >= Numbers.number
登录后复制

此解决方案生成一个数字序列,最多可达表中的最大计数。通过将原始表与 Numbers 表连接起来,我们可以有效地重复行并分配顺序索引。以下是使用 Microsoft SQL Server 的示例:

WITH Numbers AS (
    SELECT ROW_NUMBER() OVER (ORDER BY number) AS number
    FROM (
        SELECT 1 AS number
        UNION ALL
        SELECT number + 1
        FROM Numbers
        WHERE number < (MAX(count) OVER ())
    ) AS Outer
)
SELECT value, count, number
FROM table
JOIN Numbers
ON table.count >= Numbers.number
登录后复制

以上是如何在 SQL 中根据计数追加行并按顺序编号?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板