SQL刷题专栏 SQL145题系列 本文系粉丝投稿,欢迎有写技术文章的小伙伴投稿 Vintage分析 Vintage分析用到信贷资产行业,指的是每个月贷款的资产质量情况,要直接跟每个相同时间段内的余额做比较...窗口函数实现我们的需求: 如果对LEAD函数使用有疑问的朋友,可以先阅读LEAD函数的具体介绍: SQL Server中的LAG函数与LEAD函数介绍 select date_faka, M3,M4,...order by date_mob) M4, lead(overduerate,2) over(partition by date_faka order by date_mob) M5, lead(overduerate...) M6, lead(overduerate,4) over(partition by date_faka order by date_mob) M7, lead(overduerate,5) over...over(partition by date_faka order by date_mob) row_num from WN_table ) t where row_num = 1 总结 这里我们使用窗口函数制作了
今天讲一下错行函数(lag,lead)函数如何使用窗口函数。...Lag(exp_str,offset,defval) over() Lead(exp_str,offset,defval) over() --exp_str要取的列 --offset...SQL> select t.* from test_student_score t; STUDENT_ID SUBJECT_ID SCORE ---------- ---------- --...先看一下不用这两个函数式的原始输出: SQL> select * from test_student_score t where t.subject_id = 3; STUDENT_ID SUBJECT_ID..., t.score, lead(t.score, 1, -1) over(order by t.score) as leads from test_student_score
SQL AVG()函数 (1....SQL MIN()函数 (2....SQL MAX()函数 (3....SQL SUM()函数 (4....SQL COUNT()函数 (5.
lead::= LEAD "(" expr [(RESPECT|IGNORE) NULLS] "," offset "," default ")" OVER "(" [query_partition_clause...] order_by_clause ")"LEAD为窗口函数。...窗口函数不可嵌套,因此expr为除窗口函数之外的其他通用表达式,其数据类型可以是除大对象型、JSON、XMLTYPE及UDT以外的数据类型。...default指定按给定偏移量无法获取到行记录时,函数返回的默认值。...query_partition_clause|order_by_clause窗口函数通用语法。
score_db 表: image.png student_db表: image.png 1.AVG() 函数 AVG() 函数返回数值列的平均值。...COUNT() 函数 COUNT() 函数返回匹配指定条件的行数。...分组统计学生国家的数量 SELECT country,COUNT(country) FROM student_db GROUP BY country; 9.HAVING 子句 在 SQL 中增加 HAVING...UCASE() 函数把字段的值转换为大写。...select ROUND(3.1415,2); 16.NOW() 函数 NOW() 函数返回当前系统的日期和时间。
SQL Aggregate 函数 SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。...Aggregate 函数: AVG() - 返回平均值 COUNT() - 返回行数 FIRST() - 返回第一个记录的值 LAST() - 返回最后一个记录的值 MAX() - 返回最大值
1.UPPER() 函数 UPPER() 函数把字段的值转换为大写。...用于 SQL Server 的语法:SELECT UPPER(column_name) FROM table_name;数据库表:g_goodsG_ID G_NAME G_PRICE G_PINYIN101...SQL Server 的语法SELECT LOWER(column_name) FROM table_name;实例:---查出商品名称 并将拼音转为小写SELECT g.g_name,LOWER(...SQL substr() 语法SELECT substr(column_name,start[,length]) FROM table_name;参数描述column_name必需。要提取字符的字段。...SQL ROUND() 语法SELECT ROUND(column_name,decimals) FROM TABLE_NAME;参数描述column_name必需。要舍入的字段。
start_num = 5 end_num=10(数据库值) start end(条件) 四种情况:
SQL函数 $LISTGET 返回列表中的元素或指定默认值的列表函数。...可以使用 SQL 或 ObjectScript 的 $LISTBUILD 或 $LISTFROMSTRING 函数创建列表。...可以使用 SQL $LISTBUILD 函数或 ObjectScript $LISTBUILD 函数创建列表。...可以使用 SQL $LISTFROMSTRING 函数或 ObjectScript $LISTFROMSTRING 函数将分隔字符串转换为列表。...可以使用 SQL $LIST 函数或 ObjectScript $LIST 函数从现有列表中提取列表。 position 位置参数必须计算为整数。如果省略,默认情况下,该函数检查列表的第一个元素。
SQL函数 ABS 返回数值表达式的绝对值的数值函数。...请注意,ABS可以用作ODBC标量函数(带有花括号语法),也可以用作SQL通用函数。...这个函数也可以通过调用ABS()方法从ObjectScript中调用: WRITE $SYSTEM.SQL.Functions.ABS(-0099) 示例 下面的例子展示了ABS的两种形式: SELECT...在调用ABS之前, SQL将数字表达式转换为规范形式,删除前导和末尾的零,并计算指数。
SQL函数 CHAR 返回具有在字符串表达式中指定的ASCII代码值的字符的字符串函数。...请注意,CHAR可以用作ODBC标量函数(使用花括号语法),也可以用作SQL常规函数。...90) AS CharCode Z SELECT {fn CHAR(90)} AS CharCode Z 下面的示例返回希腊字母lambda: ClassMethod Cast2() { &sql
SQL函数 FLOOR 数值函数,返回小于或等于给定数值表达式的最大整数。...请注意,Floor可以作为ODBC标量函数(使用花括号语法)调用,也可以作为SQL常规函数调用。...也可以使用Floor()方法调用从ObjectScript调用此函数: $SYSTEM.SQL.Functions.FLOOR(numeric-expression) 示例 以下示例显示Floor如何将分数转换为其
SQL函数 WEEK一个日期函数,它将一年中的第几周作为日期表达式的整数返回。...大纲{fn WEEK(date-expression)}参数 date-expression - 一个表达式,它是列的名称、另一个标量函数的结果,或者是日期或时间戳文字。...可以使用 DAYOFWEEK 函数确定星期几。一年中的总周数通常为 53,闰年可能为 54。IRIS 还支持确定一年中星期的 ISO 8601 标准。该标准主要用于欧洲国家。...使用 DATEPART 或 DATENAME 函数可以返回相同的星期信息。...也可以使用 WEEK()方法调用从 ObjectScript 调用此函数:$SYSTEM.SQL.Functions.WEEK(date-expression)日期验证WEEK 对输入值执行以下检查。
SQL函数 SPACE返回一串空格的字符串函数。大纲SPACE(count){fn SPACE(count)}参数 count - 整数表达式,指定要返回的空格数。...注意:不应将 SPACE 函数与 SPACE 归类类型混淆。 SPACE 排序规则在一个值前面添加一个空格,强制将其作为字符串进行评估。...示例以下嵌入式 SQL 示例返回名称字段长度的空格字符串:/// d ##class(PHA.TEST.SQLFunction).Space()ClassMethod Space(){ &sql(
SQL函数 TIMESTAMPADD一个标量日期/时间函数,它返回一个新的时间戳,该时间戳是通过将指定日期部分的多个间隔添加到时间戳来计算的。...描述TIMESTAMPADD 函数通过将指定的日期部分增加指定的单位数来修改日期/时间表达式。...请注意,TIMESTAMPADD 只能用作 ODBC 标量函数(使用大括号语法)。可以使用 DATEADD 通用函数对时间戳执行类似的时间/日期修改操作。...timestamp-exp 可以包含任意位数的精度,但间隔类型 SQL_TSI_FRAC_SECOND 指定精确的三位精度。...尝试指定小于或大于三位数的 SQL_TSI_FRAC_SECOND 可能会产生不可预知的结果。
SQL常用函数 函数介绍 函数分类 字符串函数 数值函数 日期和时间函数 流程函数 其他常用函数 函数介绍 事先提供好的一些功能可以直接使用 函数可以用在SELECT语句及其子句 也可以用在UPDATE...函数分类 字符串函数 数值函数 日期和时间函数 流程函数 其它函数 字符串函数 concat(s1,s2...sn) 将传入的字符连接成一个字符串 任何字符串与null进行连接结果都是null SELECT...abcdab","ab","123") 123cd123 SUBSTRING(str,x,y) 返回字符串str中第x位置起y个字符长度的字符 SUBSTRING("abcde",2,3) bcd 数值函数...即向下取最近的整数 FLOOR(2.7) 2 MOD(X,Y) 返回X/Y的模 MOD(4,3) 1 RAND() 返回0-1内容的随机值 RAND() 0.6311537890053855 时间和日期函数...,返回value1否者返回value2 IFNULL(20,0) 20 CASE WHEN THEN END CASE WHEN 2>3 THEN "aa" ELSE "bb" END bb 其他函数
SQL函数 %INTERNAL 返回逻辑格式表达式的格式转换函数。...不能将流字段指定为ObjectScript一元函数(包括所有格式转换函数,%Internal除外)的参数。%INTERNAL函数允许将流字段作为表达式值,但不对该流字段执行任何操作。...%INTERNAL是InterSystems SQL扩展。 要将表达式转换为显示格式,而不考虑当前的选择模式,请使用%EXTERNAL函数。...示例 下面的动态SQL示例以当前选择模式格式返回出生日期(道布)数据值,并使用%INTERNAL函数返回相同的数据。...出于演示目的,在此程序中,为每次调用随机确定%SelectMode值: ClassMethod Internal() { s tStatement = ##class(%SQL.Statement
SQL函数 $LISTSAME 比较两个列表并返回布尔值的列表函数。 大纲 $LISTSAME(list1,list2) 参数 list1 - 计算结果为有效列表的表达式。...可以使用 SQL $LISTBUILD 函数或 ObjectScript $LISTBUILD 函数创建列表。...可以使用 SQL $LISTFROMSTRING 函数或 ObjectScript $LISTFROMSTRING 函数将分隔字符串转换为列表。...可以使用 SQL $LIST 函数或 ObjectScript $LIST 函数从现有列表中提取列表。 以下是有效列表的示例: $LISTBUILD('a','b','c'):一个三元素列表。...前三个 $LISTSAME 函数返回 1(相同);第四个 $LISTSAME 函数返回 0(不相同),因为字符串表示不是规范形式: SELECT $LISTSAME($LISTBUILD('365'),
SQL函数 ACOS 一个标量数值函数,返回给定余弦的弧余弦(以弧度为单位)。...ACOS只能用作ODBC标量函数(使用花括号语法)。 可以使用DEGREES函数将弧度转换为角度。 可以使用RADIANS函数来转换角度到弧度。
SQL函数 LCASE 将字符串中的所有大写字母转换为小写字母的大小写转换函数。...表达式可以是列名、字符串文字或另一个标量函数的结果,其中底层数据类型可以表示为任何字符类型(如CHAR或VARCHAR)。 描述 LCASE将大写字母转换为小写字母用于显示。...SQL将数字转换为规范形式,删除前导和后导零。 SQL不将数字字符串转换为规范形式。 LOWER函数也可以用来将大写字母转换为小写字母。 LCASE不影响排序。...对于不区分大小写的排序规则,%SQLUPPER函数是SQL中转换数据值的首选方法。...TOP 10 Name,{fn LCASE(Name)} AS LowName FROM Sample.Person LCASE也适用于Unicode(非ascii)字母字符,如下面的嵌入式SQL