在 SQL 中使用基于计数的编号复制行
在 SQL 中,管理出现次数不同的数据可能具有挑战性。本问题探讨了一种根据指定计数重复行的方法,为结果行分配数字索引。
数据库独立解决方案
将联接操作与数字表中,我们可以根据不同数据库平台(如 Oracle、SQL Server、MySQL 和PostgreSQL.
SELECT value, COUNT, number FROM table JOIN Numbers ON table.COUNT >= Numbers.number
说明
数字表是包含连续数字(例如,1、2、3、...)的静态表。通过在条件“COUNT >= number”下将主表与数字表连接起来,我们复制计数大于或等于数字表中可用数字的值的行。
示例
考虑以下表数据:
value | count |
---|---|
foo | 1 |
bar | 3 |
baz | 2 |
应用查询将导致以下输出:
value | count | number |
---|---|---|
foo | 1 | 1 |
bar | 3 | 1 |
bar | 3 | 2 |
bar | 3 | 3 |
baz | 2 | 1 |
baz | 2 | 2 |
在此结果中,计数为 3 的“bar”行重复三次,对应的索引为 1、2 和 3,同时出现“foo”行仅一次,因为其计数为 1。
以上是如何根据计数复制 SQL 行并分配序号?的详细内容。更多信息请关注PHP中文网其他相关文章!