sql - 使用另一个表从一个表中选择内容
问题描述
我有两张桌子
A1 | A2 |
---|---|
一种 | 2 |
b | 3 |
A3 | A4 |
---|---|
一种 | 第 1 行 |
一种 | 第 2 行 |
一种 | 第 3 行 |
一种 | 第 4 行 |
b | 第 5 行 |
b | 第 6 行 |
b | 第 7 行 |
b | 第 8 行 |
b | 第 9 行 |
我想要类似的东西
A3 | A4 |
---|---|
一种 | 第 1 行 |
一种 | 第 2 行 |
b | 第 5 行 |
b | 第 6 行 |
b | 第 7 行 |
第一个表中的第二列应该是我想从下一个表中的每个组中获得的记录数我试过的地方存在它不起作用你能帮帮我吗?!?
解决方案
我会ROW_NUMBER
在第二张桌子上使用这里。然后加入第一个表,只保留行号不超过生成的行号值的记录。
WITH cte AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY A3 ORDER BY A4) rn
FROM Table2
)
SELECT t2.A3, t2.A4
FROM cte t2
INNER JOIN Table1 t1
ON t2.A3 = t1.A1
WHERE
t2.rn <= t1.A2;
演示
请注意,最好在第二个表中有一个更合适的序列列,以确定在那里选择记录的顺序。
推荐阅读
- jenkins - 在詹金斯管道中,如何访问每个阶段的测试指标?
- python - python中的OpenCV cvtColor问题
- vba - IIF 关于标准的声明
- python - 即使我明确为它分配了不同的值,方法属性也不会自行更新
- javascript - 如何使 html 运行没有开始或结束的代码?
- javascript - JS在生成的ajax div中添加文本
- flutter - Flutter 图像选择器已经激活,null 异常
- go - 在 Go 中使用 stdlib 中未导出的函数/类型
- performance - CSV 迄今为止和浮动
- c++ - 使用 old_pointer + offset 的 new_pointer 设置 shared_ptr