文章 姚 鑫 · 一月 5, 2022 3m read

第十五章 SQL窗口函数概述(二)

ROW子句

ROW子句可以与FIRST_VALUE(字段)和SUM(字段)窗口函数一起使用。 可以为其他windows函数指定它,但不执行任何操作(有或没有ROWS子句的结果相同)。

ROWS子句有两种语法形式:

ROWS framestart
ROWS BETWEEN framestart AND frameend

Framestartframeend有五个可能的值:

UNBOUNDED PRECEDING                    /* 从当前分区的开头开始 */
offset PRECEDING   /* 开始偏移当前行之前的行数 */
CURRENT ROW                                      /* 从当前行开始 */
offset FOLLOWING  /* 继续偏移当前行后面的行数 */
UNBOUNDED FOLLOWING                  /* 继续到当前分区的末尾 */

ROWS子句语法可以在两个方向上指定一个范围。 例如,在无界前面和1后面之间的行以及在1后面和无界前面之间的行是完全相等的。

ROWS框架的开始语法默认为CURRENT ROW作为范围的第二个未指定的边界。

0
0 150
文章 Frank Ma · 一月 5, 2022 2m read

本文译自 https://community.intersystems.com/post/using-sql-apache-hive-hadoop-bi…

大家好,

在使用SparkHadoop时,InterSystems IRIS有一个很好的连接器。但市场上也提供了大数据Hadoop访问的其他优秀替代方案-Aparche Hive。请看区别:




HIVE

SPARK

Hive是一个数据库,用类似于RDBMS数据库的表格形式存储数据。

Spark不是一个数据库,它是一个数据分析框架,可以在内存中对大至PB字节的大容量数据进行复杂的数据分析。

使用称作HiveQL的自己的SQL引擎,数据可以从Hive中抽取出来。只能使用SQLs来抽取数据。

Spark既能使用复杂SQLsComplex SQLs)也能使用MapReduce机制进行数据分析。它支持Java, Scala Python写的分析框架。

HiveHadoop之上运行。

Spark没有自己专用的存储。实际上,它是从外部的分布式数据存储如运行在HadoopMongoDB上的HiveHBase中抽取数据。

0
0 197
文章 姚 鑫 · 一月 4, 2022 6m read

第十四章 SQL窗口函数概述(一)

指定用于计算聚合和排名的每行“窗口框架”的函数。

窗口函数和聚合函数

在应用WHEREGROUP byHAVING子句之后,窗口函数对SELECT查询选择的行进行操作。

窗口函数将一组行中的一个(或多个)字段的值组合在一起,并在结果集中为生成的列中的每一行返回一个值。

虽然窗口函数与聚合函数类似,因为它们将多行结果组合在一起,但它们与聚合函数的不同之处在于,它们本身并不组合行。

窗函数的语法

窗口函数被指定为SELECT查询中的选择项。 窗口函数也可以在SELECT查询的ORDER BY子句中指定。

窗口函数执行与由PARTITION by子句、ORDER by子句和ROWS子句指定的逐行窗口相关的任务,并为每一行返回一个值。

0
0 1478
公告 Claire Zheng · 一月 4, 2022

亲爱的社区开发者们,大家好!

欢迎积极参与新一轮InterSystems开发者竞赛!

随着 InterSystems IRIS 2021.2 预览版 的发布和全新的 LOAD DATA 功能,我们希望将其与最新的竞赛(数据集)结合起来! 

🏆 InterSystems 数据集竞赛🏆

竞赛时间: 2021年12月27日-2022年1月16日

奖金总额: $9,450


0
0 311
文章 姚 鑫 · 一月 3, 2022 4m read

第十三章 SQL聚合函数 XMLAGG

一个聚合函数,它创建一个串接的值字符串。

大纲

XMLAGG([ALL | DISTINCT [BY(col-list)]] string-expr [%FOREACH(col-list)] [%AFTERHAVING])

参数

  • ALL - 可选-指定XMLAGG返回string-expr的所有值的连接字符串。 如果没有指定关键字,这是默认值。
  • DISTINCT - 可选-一个DISTINCT子句,指定XMLAGG返回一个只包含唯一string-expr值的连接字符串。 DISTINCT可以指定BY(colo -list)子句,其中colo -list可以是单个字段,也可以是用逗号分隔的字段列表。
  • string-expr - 计算结果为字符串的SQL表达式。 通常,这是要从其中检索数据的列的名称。
  • %FOREACH(col-list) - 可选-列名或以逗号分隔的列名列表。
  • %AFTERHAVING - 可选-应用在HAVING子句中的条件。

描述

XMLAGG聚合函数返回由string-expr中的所有值组成的串接字符串。 返回值的数据类型为VARCHAR,默认长度为4096

  • 一个简单的XMLAGG(或XMLAGG ALL)返回一个字符串,该字符串包含一个由所选行中string-expr的所有值组成的连接字符串。
0
0 311
文章 姚 鑫 · 一月 3, 2022 4m read

第十二章 SQL聚合函数 VARIANCE, VAR_SAMP, VAR_POP

返回数据集统计方差的聚合函数。

大纲

VARIANCE([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])

VAR_SAMP([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])

VAR_POP([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])

参数

  • ALL - 可选-指定统计方差函数返回表达式中所有值的方差。 如果没有指定关键字,这是默认值。
  • DISTINCT - 可选- DISTINCT子句,指定统计方差函数返回不同(唯一)表达式值的方差。 DISTINCT可以指定BY(colo -list)子句,其中colo -list可以是单个字段,也可以是用逗号分隔的字段列表。
  • expression - 任何有效的表达式。 通常是包含要分析方差的数据值的列的名称。
  • %FOREACH(col-list) - 可选-列名或以逗号分隔的列名列表。
0
0 381
文章 姚 鑫 · 十二月 31, 2021 4m read

第十一章 SQL聚合函数 SUM

返回指定列值之和的聚合函数。

大纲

SUM([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])

参数

  • ALL - 可选-指定SUM返回表达式中所有值的和。 如果没有指定关键字,这是默认值。
  • DISTINCT - 可选-一个DISTINCT子句,指定SUM返回表达式中不同(唯一)值的和。 DISTINCT可以指定BY(colo -list)子句,其中colo -list可以是单个字段,也可以是用逗号分隔的字段列表。
  • expression - 任何有效的表达式。 通常是包含要求和的数据值的列的名称。
  • %FOREACH(col-list) - 可选-列名或以逗号分隔的列名列表。
  • %AFTERHAVING - 可选-应用在HAVING子句中的条件。

SUM返回与expression相同的数据类型,但有如下异常:TINYINTSMALLINTINTEGER返回的数据类型都是INTEGER

注意:SUM可以指定为聚合函数,也可以指定为窗口函数。 本参考页面描述了SUM作为聚合函数的使用。 SUM作为一个窗口函数在窗口函数概述中描述。

描述

SUM聚合函数返回表达式值的和。 通常,表达式是查询返回的多行中字段的名称(或包含一个或多个字段名称的表达式)。

0
0 67
文章 Michael Lei · 十二月 30, 2021 1m read

对于那些在某种程度上需要测试ECP的水平可扩展性(计算能力和/或用户和进程的并发性),但又懒得建立环境、配置服务器节点等的人来说,我刚刚在Open Exchange上发布了OPNEx-ECP部署的应用/示例。 

0
0 182
文章 姚 鑫 · 十二月 30, 2021 3m read

第十章 SQL聚合函数 STDDEV, STDDEV_SAMP, STDDEV_POP

返回数据集的统计标准差的聚合函数。

大纲

STDDEV([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])

STDDEV_SAMP([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])

STDDEV_POP([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])

参数

  • ALL - 可选-指定标准偏差函数返回表达式的所有值的标准偏差。如果未指定关键字,则这是默认值。
  • DISTINCT - 可选-指定标准偏差函数返回不同(唯一)表达式值的标准偏差的DISTINCT子句。DISTINCT可以指定BY(COL-LIST)子句,其中COL-LIST可以是单个字段,也可以是逗号分隔的字段列表。
  • expression - 任何有效的表达式。通常是包含要分析标准偏差的数据值的列的名称。
  • %FOREACH(col-list) - 可选-列名或逗号分隔的列名列表。
0
0 338
文章 Jingwei Wang · 十二月 30, 2021 7m read

可以使用内嵌REST API用描述文件生成REST服务

请求消息如下:

POST: http://[YourServer]/api/mgmnt/v2/INTEROP/cmAPI

Body: API 描述文件,例如下面的Json文件
Basic Authorization Username: 用户名

Basic Authorization Password: 密码

Content-Type Header: application/json

** 注意**:调用接口前,需要创建相应命名空间,本示例为INTEROP

API 描述文件:


    {
     "swagger": "2.0",
     "info": {
       "description": "An API for coffee sales using InterSystems IRIS",
       "version": "1.0.0",
       "title": "Coffee Maker API",
       "license": {
         "name": "Apache 2.0",
         "url": "http://www.apache.org/licenses/LICENSE-2.0.
    0
    0 295
    文章 姚 鑫 · 十二月 29, 2021 3m read

    [toc]

    第九章 SQL聚合函数 MIN

    返回指定列中的最小数据值的聚合函数。

    大纲

    MIN([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])
    

    参数

    • ALL - 可选-将聚合函数应用于所有值。ALLMIN返回的值没有影响。提供它是为了与SQL-92兼容。
    • DISTINCT - 可选-指定考虑每个唯一值。DISTINCTMIN返回的值没有影响。它是为SQL-92兼容性提供的。
    • expression - 任何有效的表达式。通常是包含要从中返回最小值的值的列的名称。
    • %FOREACH(col-list) - 可选-列名或逗号分隔的列名列表。
    • %AFTERHAVING - 可选-应用HAVING子句中的条件。

    MIN返回与表达式相同的数据类型。

    描述

    MIN聚合函数返回表达式的最小值(最小值)。通常,表达式是查询返回的多行中的字段名称(或包含一个或多个字段名称的表达式)。

    MIN可以在引用表或视图的SELECT查询或子查询中使用。MIN可以出现在选择列表或HAVING子句中,与普通字段值一起出现。

    MIN不能在WHERE子句中使用。除非SELECT是子查询,否则不能在联接的ON子句中使用MIN

    与大多数其他聚合函数一样,min不能应用于流字段。尝试这样做会生成SQLCODE-37错误。

    0
    0 300
    文章 Jingwei Wang · 十二月 29, 2021 5m read

    $HOROLOG($H)

    表示当前的本地日期和时间,是由两个整数值组成的字符串,这些整数是计数器,是InterSystems IRIS存储格式,不是用户可读的日期和时间。

    ddddd,sssss

    代码示例:

    w $H,!
     
    北京时间2021年12月29日15:15:30时,输出结果为:
     
    66107,54930

     

    第一个整数,ddddd,是当前日期,表示为自1840年12月31日以来的天数,其中第1天是1841年1月1日。这个日期到达的最大年年限是9999年12月31日,所以这个整数的最大值是2980013。$HOROLOG不能直接用于表示1840年到9999年范围之外的日期

    第二个整数,sssss,是当前的时间,表示为从当天午夜开始的秒数计数。系统将时间字段从0递增到86399秒。当午夜时分达到86399时,系统将时间字段重置为0,并将日期字段增加1。

    你可以通过调用Horolog()方法获得相同的当前日期和时间信息,如下所示。

    WRITE $SYSTEM.SYS.Horolog()

     

    $NOW()

    $NOW()返回当前进程的本地日期和时间,是InterSystems IRIS存储格式,不是用户可读的日期和时间。

    ddddd,sssss.ffffff

     

    代码示例:

    w $NOW(),!
    
    北京时间2021年12月29日15:15:30时,输出结果为:
    
    66107,54930.
    0
    0 283
    文章 Jingwei Wang · 十二月 29, 2021 4m read

    dformat :












    描述
    1 MM/DD/[YY]YY : 07/01/97 或 02/22/2018
    2 DD Mmm [YY]YY : 01 Jul 97
    3 YYYY-MM-DD :2018-02-22 (ODBC时间格式:默认值在下面的tformat部分有描述) 默认情况下,这种格式与当前的地区设置无关 如果要使用你当前的日期和时间的地区设置与这种格式,请将localeopt设置为0。
    4 DD/MM/[YY]YY :01/07/97 或 22/02/2018
    5 Mmm [D]D, YYYY :Jul 1, 1997
    6 Mmm [D]D YYYY :Jul 1 1997
    7 Mmm DD [YY]YY :Jul 01 1997
    8 YYYYMMDD :19970701
    9 Mmmmm [D]D, YYYY :July 1, 1997
    10 W (2) :一个星期的日数,从0(星期日)到6(星期六)编号。
    0
    0 186
    文章 姚 鑫 · 十二月 28, 2021 3m read

    第八章 SQL聚合函数 MAX

    返回指定列中最大数据值的聚合函数。

    大纲

    MAX([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])
    

    参数

    • ALL - 可选-将聚合函数应用于所有值。 ALLMAX返回的值没有影响。 它提供了SQL-92兼容性。
    • DISTINCT - 可选-一个DISTINCT子句,指定考虑每个惟一值。 DISTINCTMAX返回的值没有影响。 它提供了SQL-92兼容性。
    • expression - 任何有效的表达式。 通常是包含要返回的最大值的值的列的名称。
    • %FOREACH(col-list) - 可选-列名或以逗号分隔的列名列表。
    • %AFTERHAVING - 可选-应用在HAVING子句中的条件。

    MAX返回与表达式相同的数据类型。

    描述

    MAX聚合函数返回表达式的最大值。 通常,表达式是查询返回的多行中字段的名称(或包含一个或多个字段名称的表达式)。

    MAX可以在引用表或视图的SELECT查询或子查询中使用。 MAX可以在SELECT列表或HAVING子句中与普通字段值一起出现。

    MAX不能在WHERE子句中使用。 MAX不能在JOINON子句中使用,除非SELECT是子查询。

    与大多数其他聚合函数一样,MAX不能应用于流字段。

    0
    0 568
    文章 姚 鑫 · 十二月 27, 2021 6m read

    第七章 SQL聚合函数 LIST

    创建逗号分隔值列表的聚合函数。

    大纲

    LIST([ALL | DISTINCT [BY(col-list)]] string-expr [%FOREACH(col-list)] [%AFTERHAVING])
    

    参数

    • ALL - 可选-指定LIST返回string-expr的所有值的列表。 如果没有指定关键字,这是默认值。
    • DISTINCT - 可选-一个DISTINCT子句,指定LIST返回一个仅包含唯一的string-expr值的列表。 DISTINCT可以指定BY(colo -list)子句,其中colo -list可以是单个字段,也可以是用逗号分隔的字段列表。
    • string-expr - 计算结果为字符串的SQL表达式。 通常是所选表中列的名称。
    • %FOREACH(col-list) - 可选-列名或以逗号分隔的列名列表。
    • %AFTERHAVING - 可选-应用在HAVING子句中的条件。

    描述

    LIST聚合函数返回指定列中以逗号分隔的值列表。

    一个简单的LIST(或LIST ALL)返回一个字符串,其中包含一个逗号分隔的列表,该列表由所选行中string-expr的所有值组成。 其中string-expr为空字符串(")的行由逗号分隔列表中的占位符逗号表示。 string-exprNULL的行不包含在逗号分隔的列表中。

    0
    0 231
    文章 Michael Lei · 十二月 27, 2021 5m read

    freepik- freepik.com 首先,什么是数据匿名化?

    根据维基百科 Wikipedia:

    数据匿名化 是一类以隐私保护为目的的 信息清洁  . 是从数据集中去除可确定个人的信息  , 使得该数据描述的个人保持匿名.

    换句话讲, 数据匿名化是保留数据但同时要确保数据源的匿名. 基于所采用的匿名技术,数据被编辑、屏蔽或替换。 这就是IRIS-Disguise的目的,提供一套匿名化工具。 您可以使用两种不同的方式,通过方法执行或在持久类定义本身内部指定匿名化策略。

    当前版本的IRIS-Disguise提供了6种匿名化数据的策略

    • 销毁Destruction
    • 加扰Scramble
    • 洗牌Shuffling
    • 部分掩蔽Partial Masking
    • 随机化Randomization
    • 伪造Faking

    让我解释每种策略,我将用一个例子展示一个方法执行,正如前面提到的,我还将展示如何在持久类定义中应用。

    要以这种方式使用IRIS-Disguise,您需要“戴上伪装眼镜”

    在持久类中,可以扩展dc.Disguise.Glasses 类,并根据您选择的策略更改数据类型的任何属性。

    之后,在任何时候,只需调用类上的congoverProcess方法。将使用数据类型的策略替换所有值。

    让我们开始吧。

    ###销毁 Destruction

    此策略将用一个单词(默认为“机密”)替换整个列。

    Do ##class(dc.Disguise.Strategy).
    0
    2 390
    文章 姚 鑫 · 十二月 26, 2021 6m read

    第六章 SQL聚合函数 JSON_ARRAYAGG

    创建JSON格式值数组的聚合函数。

    注:IRIS可用,IRIS之前版本不可用。

    大纲

    JSON_ARRAYAGG([ALL | DISTINCT [BY(col-list)]] string-expr [%FOREACH(col-list)] [%AFTERHAVING])
    

    参数

    • ALL - 可选-指定JSON_ARRAYAGG返回一个JSON数组,其中包含string-expr的所有值。 如果没有指定关键字,这是默认值。
    • DISTINCT - 可选-一个DISTINCT子句,指定JSON_ARRAYAGG返回一个仅包含唯一字符串expr值的JSON数组。 DISTINCT可以指定BY(colo -list)子句,其中colo -list可以是单个字段,也可以是用逗号分隔的字段列表。
    • string-expr - 计算结果为字符串的SQL表达式。 通常是所选表中列的名称。
    • %FOREACH(col-list) - 可选-列名或以逗号分隔的列名列表。
    • %AFTERHAVING - 可选-应用在HAVING子句中的条件。

    描述

    JSON_ARRAYAGG聚合函数返回指定列中值的JSON格式数组。

    一个简单的JSON_ARRAYAGG(或JSON_ARRAYAGG ALL)返回一个JSON数组,其中包含所选行中string-expr的所有值。

    0
    0 422
    文章 姚 鑫 · 十二月 25, 2021 5m read

    第五章 SQL聚合函数 %DLIST

    创建值列表的聚合函数。

    大纲

    %DLIST([ALL | DISTINCT [BY(col-list)]] string-expr [%FOREACH(col-list)] [%AFTERHAVING])
    

    参数

    • ALL - 可选-指定%DLIST返回string-expr的所有值的列表。如果未指定关键字,则这是默认值。
    • DISTINCT - 可选- DISTINCT子句,指定%DLIST返回一个结构化的%List,其中只包含唯一的string-expr值。 DISTINCT可以指定BY(colo -list)子句,其中colo -list可以是单个字段,也可以是用逗号分隔的字段列表。
    • string-expr - 计算结果为字符串的SQL表达式。 通常是所选表中列的名称。
    • %FOREACH(col-list) - 可选-列名或以逗号分隔的列名列表。
    • %AFTERHAVING - 可选-应用在HAVING子句中的条件。

    描述

    %DLIST聚合函数返回一个ObjectScript %List结构,其中包含指定列中的值作为列表元素。

    一个简单的%DLIST(或%DLIST ALL)返回列表,该列表由所选行中string-expr的所有非null值组成。 string-exprNULL的行不会作为元素包含在列表结构中。

    0
    0 136
    文章 姚 鑫 · 十二月 24, 2021 4m read

    第四章 SQL聚合函数 COUNT(二)

    权限

    要使用COUNT(*),必须对指定的表具有表级别的SELECT权限。 要使用COUNT(column-name),必须对指定的列具有列级的SELECT权限,或者对指定的表具有表级的SELECT权限。 可以通过调用%CHECKPRIV命令来确定当前用户是否具有SELECT权限。 可以通过调用$SYSTEM.SQL.Security.CheckPrivilege()方法来确定指定的用户是否具有表级SELECT权限。

    性能

    为了获得最优的COUNT性能,你应该按照以下方式定义索引:

    • 对于COUNT(*),如果需要,定义位图扩展索引。 这个索引可能是在创建表时自动定义的。
    • 对于COUNT(fieldname),为指定字段定义一个位片索引。 查询计划优化COUNT(fieldname)自动应用默认的排序规则到fieldname

    未提交事务所做的更改

    与所有聚合函数一样,COUNT总是返回数据的当前状态,包括未提交的更改,而不管当前事务的隔离级别如何,如下所示:

    • COUNT插入和更新的记录的计数,即使这些更改尚未提交并可能回滚。
    • COUNT不计算已删除的记录,即使这些删除还没有提交并且可以回滚。

    示例

    下面的示例返回Sample.Person中的总行数:

    SELECT COUNT(*) AS TotalPersons
         FROM Sample.
    0
    0 113
    文章 姚 鑫 · 十二月 23, 2021 5m read

    第三章 SQL聚合函数 COUNT(一)

    返回表或指定列中的行数的聚合函数。

    大纲

    COUNT(*)
    
    COUNT([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])
    

    参数

    • * - 指定应计算所有行以返回指定表中的总行数。 COUNT(*)不接受其他参数,不能与ALLDISTINCT关键字一起使用。 COUNT(*)不接受表达式参数,也不使用任何特定列的信息。 COUNT(*)返回指定表或视图中的行数,但不消除重复项。 它分别计数每一行,包括包含NULL值的行。
    • ALL - 可选-指定COUNT返回表达式中所有值的计数。 如果没有指定关键字,这是默认值。
    • DISTINCT - 可选-一个DISTINCT子句,指定COUNT返回表达式的不同(唯一)值的计数。 不能与流字段一起使用。 DISTINCT可以指定BY(colo -list)子句,其中colo -list可以是单个列名,也可以是用逗号分隔的列名列表。
    • expression - 任何有效的表达式。 通常是包含要计算的数据值的列的名称。
    • %FOREACH(col-list) - 可选-列名或以逗号分隔的列名列表。
    • %AFTERHAVING - 可选-应用在HAVING子句中的条件。

    COUNT返回BIGINT数据类型。

    0
    0 663
    文章 Jingwei Wang · 十二月 23, 2021 6m read

    正如你在我的简介中看到的,我在一所大学教书,我想分享我对IRIS(或之前的Caché)教学的看法。

    已经有一段时间了,但我还记得在今年早些时候看到YURI MARX GOMES关于 "用InterSystems对象和SQL开发 "一系列课程。他对第1天第2天第3天的课程内容进行了简要的描述,并附有讲师Joel Solon的评论。我心想,分享我自己的经验可能会有趣。

    在我真正写下我教给学生的东西之前,先简单介绍一下我的经历。

    在我毕业拿到硕士学位回到大学工作后,我们系决定更新我们的课程,在普通课程中增加几门新课程。其中一门是 "后关系型数据库"。它是为研究生第一年的学生讲授的。开始时,它包括72小时的讲座和72小时的实践。现在变为秋季学期72小时的讲座和36小时的实践。

    由于我是一名新员工,而且是一名年轻有为的员工,我被赋予了讲授这门新学科的职责。我感到惊讶和惊恐是不言而喻的。首先,我根本没有任何教学方面的实践经验。其次,我只有夏天的三个月时间来学习一项对我来说完全陌生的技术并准备课程的讲授。幸运的是,我已经知道了应该教授哪个数据库。这个数据库就是InterSystems Caché。

    总之,我或多或少地准备好了,然后我亲爱的学生们的问题开始了。例如,为什么他们必须学习这个数据库,他们在哪里以及如何使用这个数据库,等等。

    1
    0 365
    公告 Johnny Wang · 十二月 23, 2021

        12月25日-26日,首届全国医疗健康信息互联互通与智慧医院建设大会即将拉开帷幕!本次会议以“互联互通——通向智慧医院的桥梁”为主题,将采用线上形式召开。

        会议分为两大部分(点击“阅读原文”查看全部日程报名方式

    0
    0 386
    文章 姚 鑫 · 十二月 22, 2021 6m read

    第二章 SQL聚合函数 AVG

    返回指定列值的平均值的聚合函数。

    大纲

    AVG([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])
    

    参数

    • ALL - 可选-指定AVG返回表达式所有值的平均值。 如果没有指定关键字,则为默认值。
    • DISTINCT - 可选 - DISTINCT子句,指定AVG只计算一个值的唯一实例的平均值。 DISTINCT可以指定BY(col-list)子句,其中col-list可以是单个字段,也可以是逗号分隔的字段列表。
    • expression - 任何有效的表达式。 通常是包含要取平均值的数据值的列的名称。
    • %FOREACH(col-list) - 可选—列名或以逗号分隔的列名列表。
    • %AFTERHAVING - 可选 - 应用在HAVING子句中找到的条件。

    AVG返回NUMERICDOUBLE数据类型。 如果expressionDOUBLE类型,AVG返回DOUBLE; 否则,它返回NUMERIC

    描述

    AVG聚合函数返回表达式值的平均值。 通常,表达式是查询返回的多行中字段的名称(或包含一个或多个字段名称的表达式)。

    AVG可以用于引用表或视图的SELECT查询或子查询。 AVG可以出现在SELECT列表或HAVING子句中,与普通字段值一起出现。

    0
    0 485
    文章 Jingwei Wang · 十二月 22, 2021 5m read

     

    IRIS 2019.4 预览版中发布了/api/monitor服务,以Prometheus格式展示IRIS指标,但没有正式公布。对于任何想要使用IRIS指标作为其监控和警报解决方案的一部分的人来说,这是一个大新闻。该API是新的IRIS 系统警报和监控(SAM)解决方案的一个组成部分,将在IRIS的一个即将到来的版本中发布。

    然而,你不必等待SAM开始规划和试用这个API来监控你的IRIS实例。在未来的文章中,我将深入挖掘可用的指标和它们的含义,并提供交互式仪表盘的例子。但首先,让我从一些背景和一些问题和答案开始。

    IRIS(和Caché)总是在收集关于它自己和它所运行的平台的几十个指标。一直以来都有多种收集这些指标的方法来监控Caché和IRIS。我发现,很少有安装使用IRIS和Caché内置的解决方案。例如,History Monitor仪表盘作为性能和系统使用指标的历史数据库已经存在很长时间了。然而,没有明显的方法来展现这些指标,并实时监测系统。

    IRIS平台的解决方案正在从运行在几个企业内部的实例上的单体应用程序,转向分布式解决方案部署在 "任何地方"。对于许多用例,现有的IRIS监控选项并不适合这些新的模式。InterSystems没有使用陈旧的方法,而是寻找当前流行的、经过验证的开源解决方案进行监控和警报。

     

    普罗米修斯?

    0
    0 307
    文章 Jingwei Wang · 十一月 2, 2021 4m read

    InterSystems 技术概要

    技术概要(First Look)是为用户提供InterSystems IRIS的关键技术和选项的实践经验的简短文档,其中涉及到的许多技术都可以在免费的评估实例上体验所有这些技术都可以在已授权的InterSystems IRIS实例上完成。

    部署

    技术概要:InterSystems 云管理器(First Look: InterSystems Cloud Manager)

    介绍InterSystems 云管理器,为您展示如何利用它在公有云上部署InterSystems产品。

    技术概要: 容器中的InterSystems 产品(First Look: InterSystems Products in Containers)

    介绍Docker容器和在容器中运行InterSystems产品。

    InterSystems IRIS 基础:安装(InterSystems IRIS Basics: Installation

    指导用户完成InterSystems IRIS的单实例安装,以便与其它技术概要(First Looks)一起使用。

    架构

    技术概要:使用InterSystems分布式缓存扩展系统的用户容量

    介绍了使用由ECP支持的分布式缓存来扩展用户容量。

    1
    1 809
    文章 姚 鑫 · 十二月 21, 2021 7m read

    第一章 聚合函数概述

    计算列的所有值并返回单个聚合值的函数。

    支持聚合函数

    聚合函数执行与单个列中的一个或多个值相关的任务,并返回单个值。 支持的功能有:

    • SUM - 返回指定列的值的和。
    • AVG - 返回指定列值的平均值。
    • COUNT - 返回表中的行数,或指定列中非空值的个数。
    • MAX - 返回指定列中使用的最大值。
    • MIN - 返回指定列中使用的最小值。
    • VARIANCEVAR_SAMP, VAR_POP - 返回指定列的值的统计方差。
    • STDDEV, STDDEV_SAMP, STDDEV_POP - 返回指定列值的统计标准偏差。
    • LIST - 以逗号分隔的列表形式返回指定列中使用的所有值。
    • %DLIST - 返回指定列中使用的所有值,作为 IRIS列表结构中的元素。
    • XMLAGG - 将指定列中使用的所有值作为连接字符串返回。
    • JSON_ARRAYAGG - 返回指定列中使用的所有值作为JSON格式数组。

    可以使用CREATE aggregate命令定义其他用户定义的聚合函数。

    聚合函数忽略为NULL的字段。 例如,LIST%DLIST不包含指定字段为NULL的行的元素。 COUNT只计算指定字段的非空值。

    聚合函数(COUNT除外)不能应用于流字段。 这样做会产生一个SQLCODE -37错误。 可以使用COUNT来计数流字段值,但有一些限制。

    注意:聚合函数类似于窗口函数。

    0
    0 213
    文章 Johnny Wang · 十二月 19, 2021 3m read

        如果您经常阅读我们的博客,您可能记得去年夏天我们进行了 InterSystems 速度测试,该测试由 ESG 验证,旨在测试数据库可以同时摄取和查询的数据量,以及这表现出的具体的影响。从那以后,我们 GitHub 页面的许多访问者一直在根据自己的想法重复验证这个测试

    3
    0 410
    文章 姚 鑫 · 十二月 19, 2021 5m read

    第二十章 SQL谓词 %STARTSWITH(二)

    首尾空格

    在大多数情况下,%STARTSWITH将前导空格视为与任何其他字符相同的字符。 例如,%STARTSWITH ' B'可用于选择只有一个前导空白后跟字母B的字段值。然而,只包含空白的子字符串不能选择前导空白; 它选择非空值。

    尾随空格的%STARTSWITH行为取决于数据类型和排序规则类型。 %STARTSWITH忽略定义为SQLUPPER的字符串子串的尾随空格。 %STARTSWITH不会忽略数字、日期或列表子字符串中的尾随空格。

    在下面的示例中,%STARTSWITH将结果集限制为以“M”开头的名称。 因为Name是一个SQLUPPER字符串数据类型,子字符串的末尾空格将被忽略:

    SELECT Name FROM Sample.Person
    WHERE Name %STARTSWITH 'M      '
    

    在下面的示例中,%STARTSWITH从结果集中删除所有行,因为对于数值,子字符串的末尾空格不会被忽略:

    SELECT Name,Age FROM Sample.Person
    WHERE Age %STARTSWITH '6      '
    

    在下面的示例中,%STARTSWITH从结果集中删除所有行,因为对于列表值,子字符串中的末尾空不会被忽略:

    SELECT Name,FavoriteColors FROM Sample.
    0
    0 91
    文章 姚 鑫 · 十二月 18, 2021 5m read

    第十九章 SQL谓词 %STARTSWITH(一)

    用指定初始字符的子字符串匹配值。

    大纲

    scalar-expression %STARTSWITH substring
    

    参数

    • scalar-expression - 将其值与子字符串进行比较的标量表达式(最常见的是数据列)。
    • substring - 解析为包含与标量表达式中的值匹配的第一个或多个字符的字符串或数字的表达式。

    描述

    %STARTSWITH谓词允许选择以子字符串中指定的字符开头的数据值。 如果substring不匹配任何标量表达式值,%STARTSWITH返回空字符串。 无论显示模式如何,这个匹配总是在逻辑(内部存储)数据值上执行。

    下面的示例选择所有以“M”开头的名称:

    SELECT Name FROM Sample.MyTest WHERE Name %STARTSWITH 'M'
    

    可以用NOT来颠倒谓词的意思。 下面的示例选择除了以“M”开头的名称以外的所有名称:

    SELECT Name FROM Sample.MyTest WHERE NOT Name %STARTSWITH 'M'
    

    排序类型

    %STARTSWITH使用与它匹配的字段相同的排序规则类型。 默认情况下,字符串数据类型字段是用SQLUPPER排序规则定义的,它不区分大小写。

    0
    0 228