mysql - 根据左连接数重复行 X 次
问题描述
我有一张桌子(订阅)
OrderId | Plan value
1 | A
2 | B
3 | C
4 | A
... | ...
我得到了左连接表(计划值)
Plan Value ID | Value
A | 2
B | 4
C | 1
我的输出表必须是:
OrderId | Plan value
1 | A
1 | A
2 | B
2 | B
2 | B
2 | B
3 | C
4 | A
4 | A
我希望你根据“值”结果中的左连接号重复 X 次 OrderID 行。
提前致谢!
解决方案
您需要一个数字表或递归 CTE。假设表有足够的行,您可以即时生成数字表:
select s.order_id, s.plan_value
from subscriptions s join
plans p
on s.plan_value = p.plan_value_id join
(select row_number() over () as seqnum
from subscriptions
limit 100 -- or the maximum
) n
on n.seqnum <= p.value;
推荐阅读
- c# - 如何获得资源的价值?(超过 1 种语言)
- vcf-variant-call-format - 如何在给定染色体编号和位置的情况下检索 SNP 的 rsID
- react-native - 来自包“@react-native-community/async-storage”的异步存储无法在 react-native 中正确检索日期
- spring - NPE SpringLookupInitializer createLookup Spring-Vaadin 19+
- arrays - 如何从SAS中的数组子集中获取大于零的值的计数
- android - 与 Delphi 10.4.2 一起使用的 Android 模拟器
- php - 如何从 txt 文件中读取数组的内容
- reactjs - 我无法使用 npm start 运行反应应用程序如何解决此错误?
- javascript - 向使用 HTML 画布绘制的元素添加文本
- css - 如何从路由器链接中删除线路?style={{'textDecoration': 'none'}} 不起作用