• 关于

    Lag

    的搜索结果

回答

可以使用Spark自己的levenshtein功能。此函数需要两个字符串进行比较,因此不能与数组一起使用。// creating window - ordered by IDval window = Window.orderBy("id")// using the window with lag function to compare to previous value in each columndf.withColumn("edit-d", levenshtein(($"name"), lag("name", 1).over(window)) + levenshtein(($"surname"), lag("surname", 1).over(window))).show()给出所需的输出:idnamesurnamearrayedit-d1AABB[AA, BB]null2AABB[AA, BB]03ABBB[AB, BB]1

社区小助手 2019-12-02 01:47:59 0 浏览量 回答数 0

回答

您可以使用lag(): select t.*, (case when lag(input, 1, input) over (partition by person_id order by start_date) = input then 0 else 1 end) as FLAG from table t;

祖安文状元 2020-01-05 14:44:11 0 浏览量 回答数 0

回答

您可以使用analytical function以下方法: select case when lag(name) over(partition by name order by marks) is null then dr end as sno, case when lag(name) over(partition by name order by marks) is null then name end as name, subject, marks from ( select t.*, dense_rank() over (order by t.name desc) as dr from students t -- dense rank is used to give numbers to the student - sno ) order by dr;

保持可爱mmm 2019-12-02 03:16:06 0 浏览量 回答数 0

阿里云高校特惠,助力学生创业梦!0元体验,快速入门云计算!

学生动手场景应用,快速了解并掌握云服务器的各种新奇玩法!

回答

SQL Server从2012开始,引入了LEAD和LAG函数,这两个函数可以把之前要关联查询的方法,改为可直接获取当前数据上下相邻多少行数据,描述的有点不清楚,上数据吧,测试数据: --测试数据 if not object_id(N'Tempdb..#T') is null drop table #T Go Create table #T([Id] int,[Value] int) Insert #T select 1,10 union all select 2,20 union all select 3,30 union all select 4,40 union all select 5,50 Go --测试数据结束        以LEAD方法为例(LAG一样),语法是这样的:LEAD ( scalar_expression [ ,offset ] , [ default ] ) OVER ( [ partition_by_clause ] order_by_clause ),读取的数据,偏移多少行,如果没有值默认值是多少,写法如下: SELECT *, LEAD(Value, 1, 666) OVER (ORDER BY Value) AS LEADVALUE, --提前1行,默认值666 LAG(Value, 2, 888) OVER (ORDER BY Value) AS LAGVALUE --滞后2行,默认值888 FROM #T;        结果如下:        我们也可以不写偏移数和默认值,结果就是这样的: SELECT *, LEAD(Value) OVER (ORDER BY Value) AS LEADVALUE, --提前1行 LAG(Value) OVER (ORDER BY Value) AS LAGVALUE --滞后1行

python小菜菜 2020-06-20 13:49:33 0 浏览量 回答数 0

问题

使用SQL Server从贷方和借方导出期末余额

游客pz744qb5l2fw4 2020-01-03 15:31:29 6 浏览量 回答数 1

回答

谢谢了,下面是postgresql 的SQL写法。 -- p1 昨天的日期-- p2 当月统计数据范围内,上一条月累加值-- p3 当年统计数据范围内,上一条年累加值-- p4 当月统计数据范围内,第一条月累加值-- p5 当月统计数据范围内,第一条日值-- p6 当年统计数据范围内,第一条年累加值-- p7 当年统计数据范围内,第一条日值 select * from ( select v_d, data, month, year, lag(v_d, 1) over (order by v_d) p1, lag(month, 1) over (partition by extract(month from v_d) order by v_d) p2, lag(year, 1) over (partition by extract(year from v_d) order by v_d) p3, first_value(data) over(partition by extract(month from v_d) order by v_d) p4, first_value(month) over(partition by extract(month from v_d) order by v_d) p5, first_value(data) over(partition by extract(year from v_d) order by v_d) p6, first_value(year) over(partition by extract(year from v_d) order by v_d) p7 from tbl) twhere v_d - p1 <>1orp4 <> p5orp6 <> p7orp2+data <> monthorp3+data <> year; 不知道这种写法对不对。在这个简单例子里可以得到期望结果。 sum(data) over (partition by extract(month from v_d) order by v_d) as 计算月累,如果记录里年不都是一年,结果就不对。希望大拿帮助一下,解释partition by extract(month from v_d),谢谢了。select * from( select v_d, data, month, sum(data) over (partition by extract(month from v_d) order by v_d) as 计算月累, year, sum(data) over (partition by extract(year from v_d) order by v_d) as 计算年累, lag(v_d, 1) over (order by v_d) p1 from tbl ) twhere v_d - p1 <>1ormonth <> 计算月累oryear <> 计算年累

computerlover 2019-12-02 01:29:26 0 浏览量 回答数 0

问题

如何在Pandas中生成更快的sliding-window特征?

is大龙 2020-03-24 14:25:08 7 浏览量 回答数 1

回答

假设你用的是PostgreSQL数据库。 问题可能出在两处 1. 缺失日期 2. 数据错误 月起始值错误 年起始值错误 月累加值错误 年累加值错误 pipeline=# create table tbl(v_d date, data numeric, month numeric, year numeric); CREATE TABLE pipeline=# insert into tbl values ('2015-01-01', 100, 100, 100); INSERT 0 1 pipeline=# insert into tbl values ('2015-01-02', 200, 300, 300); INSERT 0 1 pipeline=# insert into tbl values ('2015-01-04', 200, 500, 500); INSERT 0 1 pipeline=# select v_d, data, month, year, lag(v_d, 1) over (order by v_d) p1, lag(month, 1) over (partition by month(v_d) order by v_d) p2, lag(year, 1) over (partition by year(v_d) order by v_d) p3, first_value(data) over(partition by month(v_d) order by v_d) p4, first_value(month) over(partition by month(v_d) order by v_d) p5, first_value(data) over(partition by year(v_d) order by v_d) p6, first_value(year) over(partition by year(v_d) order by v_d) p7 from tbl; v_d | data | month | year | p1 | p2 | p3 | p4 | p5 | p6 | p7 ------------+------+-------+------+------------+-----+-----+-----+-----+-----+----- 2015-01-01 | 100 | 100 | 100 | | | | 100 | 100 | 100 | 100 2015-01-02 | 200 | 300 | 300 | 2015-01-01 | 100 | 100 | 100 | 100 | 100 | 100 2015-01-04 | 200 | 500 | 500 | 2015-01-02 | 300 | 300 | 100 | 100 | 100 | 100 (3 rows) 解释 p1 昨天的日期 p2 当月统计数据范围内,上一条月累加值 p3 当年统计数据范围内,上一条年累加值 p4 当月统计数据范围内,第一条月累加值 p5 当月统计数据范围内,第一条日值 p6 当年统计数据范围内,第一条年累加值 p7 当年统计数据范围内,第一条日值 错误判断标准 1. 缺失日期 v_d - p1 <>1 2. 数据错误 月起始值错误 p4 <> p5 年起始值错误 p6 <> p7 月累加值错误 p2+data <> month 年累加值错误 p3+data <> year 最终SQL pipeline=# select * from ( select v_d, data, month, year, lag(v_d, 1) over (order by v_d) p1, lag(month, 1) over (partition by month(v_d) order by v_d) p2, lag(year, 1) over (partition by year(v_d) order by v_d) p3, first_value(data) over(partition by month(v_d) order by v_d) p4, first_value(month) over(partition by month(v_d) order by v_d) p5, first_value(data) over(partition by year(v_d) order by v_d) p6, first_value(year) over(partition by year(v_d) order by v_d) p7 from tbl) t where v_d - p1 <>1 or p4 <> p5 or p6 <> p7 or p2+data <> month or p3+data <> year; v_d | data | month | year | p1 | p2 | p3 | p4 | p5 | p6 | p7 ------------+------+-------+------+------------+-----+-----+-----+-----+-----+----- 2015-01-04 | 200 | 500 | 500 | 2015-01-02 | 300 | 300 | 100 | 100 | 100 | 100 (1 row)

德哥 2019-12-02 01:29:25 0 浏览量 回答数 0

回答

这是我最喜欢的MySQL hack。 这是模拟滞后函数的方式: SET @quot=-1; select time,company,@quot lag_quote, @quot:=quote curr_quote from stocks order by company,time; lag_quote保存上一行报价的值。对于第一行,@ quot是-1。 curr_quote 保留当前行的报价的值。 笔记: order by 子句在这里很重要,就像在常规窗口函数中一样。 您可能还想使用lag company来确保计算相同引号的差异company。 您也可以以相同的方式实现行计数器 @cnt:=@cnt+1 与该方案相比,与使用聚合函数,存储过程或在应用程序服务器中处理数据等其他方法相比,该方案在计算上非常精益。 编辑: 现在开始以您提到的格式获取结果的问题: SET @quot=0,@latest=0,company=''; select B.* from ( select A.time,A.change,IF(@comp<>A.company,1,0) as LATEST,@comp:=A.company as company from ( select time,company,quote-@quot as change, @quot:=quote curr_quote from stocks order by company,time) A order by company,time desc) B where B.LATEST=1; 嵌套不是相互关联的,因此(在计算上)不如在语法上看起来那么糟糕:) 让我知道您是否需要任何帮助。

保持可爱mmm 2020-05-10 21:31:37 0 浏览量 回答数 0

回答

看你的样子是想用lead或者lag类似的函数按照上面语句,下面一行和当前行的列都显示在同一行,想怎么处理都行

吴孟桥 2019-12-02 02:43:15 0 浏览量 回答数 0

问题

计算`Spark Dataframe的连续行上的编辑距离

社区小助手 2019-12-01 19:25:48 517 浏览量 回答数 1

回答

1、order by 计划名称,版本号2、根据lead和lag函数把下一个版本的字段获取到同一行(怎么实现我的blog中sqlserver,mysql,oracle都已经介绍实现方法了)3、剩下的就是你想怎么减就怎么减了。

吴孟桥 2019-12-02 02:43:17 0 浏览量 回答数 0

回答

38题 select * , case when id%2 =1 and name_2 is not null then name_2 when id%2 =0 then name_4 else name_id end as name_3 from ( select *,Lead(name_id) over(order by id) as name_2 ,Lag(name_id) over(order by id) as name_4 from test )a

饭特稀mc 2020-06-17 19:36:29 0 浏览量 回答数 0

回答

使用groupby会更快(更干净): groups = df.groupby(['Region', 'Product'])['Order'] for i in range(28,56): df[f'Lag_{i}'] = groups.shift(i) 回答来源:stackoverflow

is大龙 2020-03-24 14:25:16 0 浏览量 回答数 0

回答

第四题:HIVE SELECT T1.A AS A, T1.B AS B, IF(T1.C_USE = T1.C, T1.C, 1) AS C FROM (SELECT T.A AS A, SUM(T.B) OVER(PARTITION BY T.A) AS B, T.C AS C_USE, LAG(T.C) OVER(PARTITION BY T.A) AS C FROM OFFLINE.TEST_MBW T) T1 WHERE T1.C IS NOT NULL;

马小马码代码 2019-12-02 03:22:30 0 浏览量 回答数 0

问题

用highcharts制作的图表,x轴刻度间隔问题

a123456678 2019-12-01 20:19:32 2130 浏览量 回答数 1

问题

Flink SQL 如何在流式数据上使用LAG和LEAD函数

Banji 2020-06-18 15:33:02 1 浏览量 回答数 0

问题

Flink sql 支持在流式数据上使用LAG和LEAD函数吗

Banji 2020-06-18 15:37:00 20 浏览量 回答数 1

回答

SELECT mt1.ID, mt1.Kilometers, mt1.date, mt1.Kilometers - IFNULL(mt2.Kilometers, 0) AS number_km_since_last_date FROM myTable mt1 LEFT JOIN myTable mt2 ON mt2.Date = ( SELECT MAX(Date) FROM myTable mt3 WHERE mt3.Date < mt1.Date ) ORDER BY mt1.date SQL小提琴 或者,lag()通过MySql hackiness 模拟功能... SET @kilo=0; SELECT mt1.ID, mt1.Kilometers - @kilo AS number_km_since_last_date, @kilo := mt1.Kilometers Kilometers, mt1.date FROM myTable mt1 ORDER BY mt1.date来源:stack overflow

保持可爱mmm 2020-05-17 20:16:17 0 浏览量 回答数 0

回答

表型延迟(phenotypic lag):表型的改变落后于基因型改变的现象。可分为分离性延迟和生理性延迟。 分离性延迟:在自发突变和诱变中,突变一般只作用与DNA的一条链,发生变异无法反映在当代表型上,突 变的基因经DNA复制和细胞分裂后变成纯合状态,才会使表型发生变异,新的表型才能表现出来。 生理性延迟: 当变异细胞由杂合状态变为纯合状态时,由于所合成的非变异的蛋白或酶仍然发挥作用,必须经过细胞多代分离后,才能将这些非变异的酶稀释掉,最终达到变异后应该表现的形态,如营养缺陷型突变株的筛选过程。 此答案来源于网络

养狐狸的猫 2019-12-02 02:13:46 0 浏览量 回答数 0

回答

有么有大神给点指导意见呀 不用实现有思路也好 既然有外键,就应该关联删除回复 @jfinal_lag:那如果是像库存这样的对象您觉得该怎么处理呢?我现在这边商品的库存存在多个地方,互相还会调拨,也就是说存在库存记录和调拨单记录,删除商品的话不知道如何处理这些记录谢谢!回复 @TommyJ:做一个订单和商品的关联表,里面冗余一些商品的需要显示的信息理论上来说确实是应该关联的都删除,但是有些表不大适合删,比如订单关联着商品,商品被删除之后用户如果看到订单不见了估计也会捉急。。。之前用mybatis写软删除加载不会报错但是hibernate的懒加载会报错。。。 有没有好的思路呀。。。大家都给点建议嘛谢谢啦

爱吃鱼的程序员 2020-06-07 21:57:31 0 浏览量 回答数 0

回答

我认为您不需要LAG(),只需打开窗口即可SUM(): CREATE TABLE Data ( cust int, [date] date, [credit amount] numeric(10, 2), [debit amount] numeric(10, 2) ) INSERT INTO Data (cust, [date], [credit amount], [debit amount]) VALUES (1, '20200101', 5000.00, 0.00), (2, '20200101', 0.00, 2000.00), (2, '20200107', 4000.00, 0.00), (1, '20200107', 0.00, 2000), (1, '20200109', 5000.00, 0.00) 声明: SELECT cust, [date], [credit amount], [debit amount], SUM(-[debit amount] + [credit amount]) OVER (PARTITION BY cust ORDER BY [date]) AS [closing balance] FROM Data

游客pz744qb5l2fw4 2020-01-03 15:33:31 0 浏览量 回答数 0

回答

这种我遇到过,消费端是单线程消费,一旦有阻塞,就会导致无法消费新的数据。久而久之,你的消息通道就挂掉了。。如果是消费端线程阻塞,应用重启后应该可以消费消息,但重启后,仍然不能消费消息。。。 这个我也遇到过,你可以试试spring-kafka 感觉你应该是使用Kafka的订阅推送模式。 你可以通过kafka的命令行工具查看一下你GroupId消费的游标到哪儿了,有多少lag的消息。确认好了知道。就知道是你写入的时候就出了问题了,还是你在获取订阅消费的时候出问题了。 另外kafka本身是有侦听事件的。打个断点在侦听上啊。消费失败没关系,但侦听基本是不会出问题的。 最后描述问题请把kafka的版本号及Scala的版本号确认好 如果一个group下有多台机器的话,只有一台机器能正常消费.

爱吃鱼的程序员 2020-06-08 13:07:01 0 浏览量 回答数 0

回答

有么有大神给点指导意见呀 不用实现有思路也好###### 既然有外键,就应该关联删除######回复 @jfinal_lag : 那如果是像库存这样的对象您觉得该怎么处理呢?我现在这边商品的库存存在多个地方,互相还会调拨,也就是说存在库存记录和调拨单记录,删除商品的话不知道如何处理这些记录 谢谢!######回复 @TommyJ : 做一个订单和商品的关联表,里面冗余一些商品的需要显示的信息######理论上来说确实是应该关联的都删除,但是有些表不大适合删,比如订单关联着商品,商品被删除之后用户如果看到订单不见了估计也会捉急。。。之前用mybatis写软删除加载不会报错 但是hibernate的懒加载会报错。。。###### 有没有好的思路呀。。。大家都给点建议嘛 谢谢啦

爱吃鱼的程序员 2020-05-30 21:19:14 0 浏览量 回答数 0

回答

有么有大神给点指导意见呀 不用实现有思路也好###### 既然有外键,就应该关联删除######回复 @jfinal_lag:那如果是像库存这样的对象您觉得该怎么处理呢?我现在这边商品的库存存在多个地方,互相还会调拨,也就是说存在库存记录和调拨单记录,删除商品的话不知道如何处理这些记录谢谢!######回复 @TommyJ:做一个订单和商品的关联表,里面冗余一些商品的需要显示的信息######理论上来说确实是应该关联的都删除,但是有些表不大适合删,比如订单关联着商品,商品被删除之后用户如果看到订单不见了估计也会捉急。。。之前用mybatis写软删除加载不会报错但是hibernate的懒加载会报错。。。###### 有没有好的思路呀。。。大家都给点建议嘛谢谢啦

优选2 2020-06-09 15:19:55 0 浏览量 回答数 0

问题

kafka pattion数据堆积,然后自动丢失?报错

爱吃鱼的程序员 2020-06-06 09:44:54 0 浏览量 回答数 1

回答

<p>有么有大神给点指导意见呀</p> 不用实现有思路也好 <p>既然有外键,就应该关联删除</p> 回复 <a class="referer" target="_blank">@jfinal_lag</a> : 那如果是像库存这样的对象您觉得该怎么处理呢?我现在这边商品的库存存在多个地方,互相还会调拨,也就是说存在库存记录和调拨单记录,删除商品的话不知道如何处理这些记录 谢谢! 回复 <a class="referer" target="_blank">@TommyJ</a> : 做一个订单和商品的关联表,里面冗余一些商品的需要显示的信息 理论上来说确实是应该关联的都删除,但是有些表不大适合删,比如订单关联着商品,商品被删除之后用户如果看到订单不见了估计也会捉急。。。之前用mybatis写软删除加载不会报错 但是hibernate的懒加载会报错。。。 <p>有没有好的思路呀。。。大家都给点建议嘛 谢谢啦</p>

爱吃鱼的程序员 2020-06-07 21:44:44 0 浏览量 回答数 0

回答

用SCALA和mllib滑动 - 两个实现,有点繁琐,但在这里它是: import org.apache.spark.mllib.rdd.RDDFunctions._val rdd1 = sc.parallelize(Seq( ( "key1", "value1"), ( "key2", "value2"), ( "key3", "value3"), ( "key4", "value4"), ( "key5", "value5") )) val rdd2 = rdd1.sliding(2)val rdd3 = rdd2.map(x => (x(0), x(1))) val rdd4 = rdd3.map(x => ((x._1._1, x._2._1),x._1._2, x._2._2)) rdd4.collect另外,以下这个当然更好......: val rdd5 = rdd2.map{case Array(x,y) => ((x._1, y._1), x._2, y._2)}rdd5.collect在两种情况下都返回: res70: Array[((String, String), String, String)] = Array(((key1,key2),value1,value2), ((key2,key3),value2,value3), ((key3,key4),value3,value4), ((key4,key5),value4,value5))我相信满足你的需求,但不是在pyspark。 在Stack Overflow上,您可以找到pyspark没有RDD等效语句的语句,除非您“自己滚动”。您可以在Pyspark中查看如何使用滑动窗口对时间序列数据转换数据。但是,我建议使用pyspark.sql.functions.lead()和pyspark.sql.functions.lag()来建议数据帧。

社区小助手 2019-12-02 01:47:46 0 浏览量 回答数 0

回答

我认为你的意思是你想循环数据框并有一个带退出的子循环。我找不到这样的例子,事实上我不确定它是否符合SPARK范式。获得相同的结果,处理更少: import org.apache.spark.sql.functions._import spark.implicits._import org.apache.spark.sql.expressions.Window val df = Seq((0, true), (1, true), (2,false), (3, true), (4,true), (5,true), (6,false), (7,false), (8,true), (9,false)).toDF("id","flag")@transient val w1 = org.apache.spark.sql.expressions.Window.orderBy("id1") val ids = df.where("flag = false") .select($"id".as("id1")) val ids2 = ids.select($"*", lag("id1",1,-1).over(w1).alias("prev_id"))val ids3 = ids2.withColumn("prev_id1", col("prev_id")+1).drop("prev_id") // Less and better performance at scale, this is better theoretically for Catalyst to bound partitions? Less work to do in any event.// Some understanding of data required! And no grouping and min.val withNextFalse = df.join(ids3, df("id") >= ids3("prev_id1") && df("id") <= ids3("id1")) .select($"id", $"flag", $"id1".alias("nextOrCurrentFalse")) .orderBy(asc("id"),asc("id")) withNextFalse.show(false)返回: id flag nextOrCurrentFalse 0 true 2 1 true 2 2 false 2 3 true 6 4 true 6 5 true 6 6 false 6 7 false 7 8 true 9 9 false 9

社区小助手 2019-12-02 01:47:52 0 浏览量 回答数 0

回答

这是使用分析函数的Oracle方法论。 with data as ( SELECT 1 trip_id, to_date('20080801 13:30:00','YYYYMMDD HH24:mi:ss') dt, 'Initial' step from dual UNION ALL SELECT 1 trip_id, to_date('20080802 13:30:00','YYYYMMDD HH24:mi:ss') dt, 'Work' step from dual UNION ALL SELECT 1 trip_id, to_date('20080803 13:30:00','YYYYMMDD HH24:mi:ss') dt, 'Review' step from dual UNION ALL SELECT 1 trip_id, to_date('20080804 13:30:00','YYYYMMDD HH24:mi:ss') dt, 'Work' step from dual UNION ALL SELECT 1 trip_id, to_date('20080805 13:30:00','YYYYMMDD HH24:mi:ss') dt, 'Review' step from dual UNION ALL SELECT 1 trip_id, to_date('20080806 13:30:00','YYYYMMDD HH24:mi:ss') dt, 'Accepted' step from dual UNION ALL SELECT 1 trip_id, to_date('20080807 13:30:00','YYYYMMDD HH24:mi:ss') dt, 'Done' step from dual ) select trip_id, step, dt - lag(dt) over (partition by trip_id order by dt) trip_time from data / 1 Initial 1 Work 1 1 Review 1 1 Work 1 1 Review 1 1 Accepted 1 1 Done 1 这些通常在传统上我们可能使用自联接的情况下使用。

心有灵_夕 2019-12-28 23:51:39 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站