TSQL消除重复查询

GPGVM

我有相当基本的表架构。

Table A
TEMPLATE_ID    TEMPLATE_NAME

表A具有以下行

1 Procs
2 Letter
3 Retire
4 Anniversary
5 Greet
6 Event
7 Meeting
8... etc.

表B

TEMPLATE_ID    VALUE

表B有100K +行,用于TEMPLATE_ID连接两个表。

现在执行人员希望从表A中抽取20条1-5类型的记录的样本。我可以做一些基本的事情……这与我使用TSQL时的速度有关。

SELECT TOP(20) B.VALUE FROM TableB
JOIN TableA ON
B.TEMPLATE_ID = A.TEMPLATE_ID
AND TableA.TEMPLATE_NAME IN ('Procs', 'Letter'...)

但这并不完全正确,因为我最终只有20行...换句话说,我期望有100行。每个20个。

这是可以使用分区的那些区域之一。我可以看到如何将TableB分成每个模板(tableA)的分区,但是我不确定如何将其限制为20行。

好的,所以我可以将每个分区的20行剪切并粘贴到Excel中...我还可以编写5个非常基本的查询...但这有点像是一种学术...可以提高我的知识追求。

因此要澄清。每个头r个模板类型中的20条记录。

TIA

雷达

您可以使用ROW_NUMBER并根据template_name对数据进行分区,并且每个分区仅返回20

SELECT * FROM 
(
SELECT B.VALUE, 
       ROW_NUMBER() OVER ( PARTITION BY TableA.TEMPLATE_NAME ORDER BY ( select NULL)) as seq
FROM 
TableB
JOIN TableA ON
B.TEMPLATE_ID = A.TEMPLATE_ID
) T
where T.seq <=20
order by B.VALUE

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何重复查询?

来自分类Dev

Laravel雄辩的重复查询

来自分类Dev

多列重复查询

来自分类Dev

Laravel雄辩的重复查询

来自分类Dev

提高重复查询的查询效率

来自分类Dev

Google表格-重复查询查询

来自分类Dev

学说重复查询结果吗?

来自分类Dev

重复查询大表的最快方法

来自分类Dev

xwiki 错误:重复查询映射 getSpaceDocsName

来自分类Dev

Angular 2路由中的重复查询参数

来自分类Dev

Jasper-Oracle-重复查询结果表

来自分类Dev

在Rest-Assured中重复查询参数

来自分类Dev

阻止PHP在刷新时进行重复查询

来自分类Dev

减少我的laravel应用中的重复查询

来自分类Dev

Oracle-如何每年/每月/每周重复查询

来自分类Dev

休眠-为对象设置属性时避免重复查询

来自分类Dev

Jasper-Oracle-重复查询结果表

来自分类Dev

MySQL是否会自动优化我的重复查询?

来自分类Dev

如果没有结果出现,则重复查询

来自分类Dev

防止 Apollo Server 2 中的重复查询

来自分类Dev

.htaccess RewriteRule 重复查询字符串

来自分类Dev

避免在 ActiveRecord 中进行重复查询 - Ruby on Rails

来自分类Dev

优化大熊猫数据框的重复查询(掩码)

来自分类Dev

Django:在以后的查询中使用查询结果,而不是重复查询

来自分类Dev

根据优先级字段消除重复记录-TSQL

来自分类Dev

根据优先级字段消除重复记录-TSQL

来自分类Dev

SQL-消除查询中的重复行

来自分类Dev

Laravel-刀片视图中的重复查询-减少查询数量

来自分类Dev

如果满足条件,则MySQL返回查询结果,而无需重复查询