有没有一种方法可以获取SQL表的比例部分?

休根特

我试图将单个查询分为4部分,以提高可读性。

将其作为单个查询虽然足够,但对于显示目的而言并不是“漂亮”的。

例如,查询会带来类似于以下内容的查询。

SELECT Column1Number
      ,Column2Text
FROM TableExample
WHERE Column1Number BETWEEN 1 AND 100
第1栏 Column2Text
001 Desc1
... ...
100 Desc100

我希望能够引入的是上述内容,但分为4个(或X个)相等的部分。

第1栏 Column2Text
001 Desc1
... ...
25 Desc25
第1栏 Column2Text
26 Desc26
... ...
50 Desc50
第1栏 Column2Text
51 Desc51
... ...
75 Desc75
第1栏 Column2Text
76 Desc76
... ...
100 Desc100

然后可以将上述4个表水平并排显示。

WHERE子句上将有“其他”过滤器,但它将导致数字及其对应的文本的列表。以产品编号和产品描述为例。

我想我需要的是一种将MAX(Column1Number)4除以并将结果放入变量的方法。也许沿着这些思路。

DECLARE @MinNumber VARCHAR(100) = MIN(Column1Number)
DECLARE @MaxNumber VARCHAR(100) = MAX(Column1Number)
DECLARE @QuarterMaxNumber VARCHAR(100) = @MaxNumber/4

从那里,我应该能够将变量“四分之一”

DECLARE @FirstQuarter VARCHAR(100) = @MinNumber + @QuarterMaxNumber
DECLARE @ThirdQuarter VARCHAR(100) = @MaxNumber - @QuarterMaxNumber
DECLARE @MidWayPoint VARCHAR(100) = @MaxNumber/2

最后,对4个SQL查询进行了一些相对简单的调整。

SELECT Column1Number
      ,Column2Text
FROM TableExample
WHERE Column1Number >= @MinNumber AND Column1Number < @FirstQuarter
SELECT Column1Number
      ,Column2Text
FROM TableExample
WHERE Column1Number >= @FirstQuarter AND Column1Number < @MidWayPoint
SELECT Column1Number
      ,Column2Text
FROM TableExample
WHERE Column1Number >= @MidWayPoint AND Column1Number < @ThirdQuarter
SELECT Column1Number
      ,Column2Text
FROM TableExample
WHERE Column1Number >= @ThirdQuarter AND Column1Number <= @MaxNumber

我认为以上将适用于连续数字。即连续计数1到100,但是如果缺少一些数字或列表不是从1开始将中断。按中断,我的意思是4个查询的长度将不相等。

我将能够在4个独立的查询中拥有相同的变量集,并且自定义设置WHERE子句也不是问题。它可能效率不高,但是目前并没有太大的问题。

到底。我希望对此有一些窍门。

感谢所有帮助。

艾伦·伯斯坦(Alan Burstein)

为此,您可以使用NTILENTILE是T-SQL尽可能均匀地划分行的方法

--==== 1. Sample Data
DECLARE @table TABLE (SomeNbr INT IDENTITY, SomeValue VARCHAR(50));
INSERT @table(SomeValue) SELECT TOP (11) NEWID() FROM sys.all_columns;

--==== Solution
SELECT 
  TileGroup = NTILE(4) OVER (ORDER BY t.SomeNbr), t.SomeNbr, t.SomeValue 
FROM   @table AS t;

返回值:

TileGroup   SomeNbr  SomeValue
----------- -------- ---------------
1           1        C3DB121B-C353-4...
1           2        A6C40211-D53B-4...
1           3        A2089286-1106-4...
2           4        3392E634-1D5E-4...
2           5        9006F0EB-1FDB-4...
2           6        831175BF-2783-4...
3           7        339216A6-AB6C-4...
3           8        29EAEECA-27E9-4...
3           9        CA302532-40F1-4...
4           10       29A41096-A786-4...
4           11       E0CA6CD4-FCB4-4...

请注意,NTILE的性能并不出色。为了获得更好的性能,可以使用NTally表,因为这是均匀划分行的最快方法。性能远远超过NTILE。不过,还需要做更多的工作。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有一种方法可以获取Func <T,bool>的类型?

来自分类Dev

有没有一种方法可以获取作为属性的构建状态?

来自分类Dev

有没有一种方法可以从ListItem获取Folder对象?

来自分类Dev

有没有一种方法可以比较跨表的行?

来自分类Dev

有没有一种方法可以复制SQLAlchemy中的表定义?

来自分类Dev

在SQL中,有没有一种方法可以将表转换为列表?

来自分类Dev

有没有一种方法可以按ID升序保存表

来自分类Dev

有没有一种方法可以获取元组的键作为数字?

来自分类Dev

有没有一种方法可以在表的模板变量中执行html?

来自分类Dev

有没有一种方法可以获取子集中的所有文档

来自分类Dev

有没有一种方法可以批量重命名配置单元表?

来自分类Dev

有没有一种方法可以在React组件表上添加边框?

来自分类Dev

有没有一种方法可以获取刮取链接的URL?

来自分类Dev

有没有一种方法可以更新工作项的“部署”部分?

来自分类Dev

有没有一种方法可以获取具有set方法的属性?

来自分类Dev

有没有一种方法可以获取脚本标记被调用的位置?

来自分类Dev

JS Fetch:有没有一种方法可以通过获取请求传递表名?

来自分类Dev

有没有一种方法可以获取模板提供的大小?

来自分类Dev

有没有一种方法可以不提交而获取reCAPTCHA的响应令牌?

来自分类Dev

有没有一种方法可以联接MS Access中的表以获取此输出?

来自分类Dev

有没有一种方法可以按组计算比例?

来自分类Dev

有没有一种方法可以通过列名搜索所有SQL表?

来自分类Dev

有没有一种方法可以获取所有堆userptr的userstack

来自分类Dev

有没有一种方法可以将MapReduce作业的输出导入到SQL表中?

来自分类Dev

在SQL中,有没有一种方法可以将表转换为列表?

来自分类Dev

有没有一种方法可以在API网址中定义表名称

来自分类Dev

有没有一种方法可以保存bokeh数据表内容

来自分类Dev

C#有没有一种方法可以在Excel工作表中获取表对象

来自分类Dev

有没有一种方法可以使使用HTML的markdown表溢出?

Related 相关文章

  1. 1

    有没有一种方法可以获取Func <T,bool>的类型?

  2. 2

    有没有一种方法可以获取作为属性的构建状态?

  3. 3

    有没有一种方法可以从ListItem获取Folder对象?

  4. 4

    有没有一种方法可以比较跨表的行?

  5. 5

    有没有一种方法可以复制SQLAlchemy中的表定义?

  6. 6

    在SQL中,有没有一种方法可以将表转换为列表?

  7. 7

    有没有一种方法可以按ID升序保存表

  8. 8

    有没有一种方法可以获取元组的键作为数字?

  9. 9

    有没有一种方法可以在表的模板变量中执行html?

  10. 10

    有没有一种方法可以获取子集中的所有文档

  11. 11

    有没有一种方法可以批量重命名配置单元表?

  12. 12

    有没有一种方法可以在React组件表上添加边框?

  13. 13

    有没有一种方法可以获取刮取链接的URL?

  14. 14

    有没有一种方法可以更新工作项的“部署”部分?

  15. 15

    有没有一种方法可以获取具有set方法的属性?

  16. 16

    有没有一种方法可以获取脚本标记被调用的位置?

  17. 17

    JS Fetch:有没有一种方法可以通过获取请求传递表名?

  18. 18

    有没有一种方法可以获取模板提供的大小?

  19. 19

    有没有一种方法可以不提交而获取reCAPTCHA的响应令牌?

  20. 20

    有没有一种方法可以联接MS Access中的表以获取此输出?

  21. 21

    有没有一种方法可以按组计算比例?

  22. 22

    有没有一种方法可以通过列名搜索所有SQL表?

  23. 23

    有没有一种方法可以获取所有堆userptr的userstack

  24. 24

    有没有一种方法可以将MapReduce作业的输出导入到SQL表中?

  25. 25

    在SQL中,有没有一种方法可以将表转换为列表?

  26. 26

    有没有一种方法可以在API网址中定义表名称

  27. 27

    有没有一种方法可以保存bokeh数据表内容

  28. 28

    C#有没有一种方法可以在Excel工作表中获取表对象

  29. 29

    有没有一种方法可以使使用HTML的markdown表溢出?

热门标签

归档