GVKun编程网logo

SQL Server中具有IGNORE NULLS的Last_value(在sql中null表示)

16

如果您对SQLServer中具有IGNORENULLS的Last_value和在sql中null表示感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解SQLServer中具有IGNORENULLS

如果您对SQL Server中具有IGNORE NULLS的Last_value在sql中null表示感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解SQL Server中具有IGNORE NULLS的Last_value的各种细节,并对在sql中null表示进行深入的分析,此外还有关于Angular 服务器端渲染两个相关的 SERVER_REQUEST_URL 和 SERVER_REQUEST_ORIGIN、Could not resolve placeholder ‘server.port‘ in value ${server.port}、FIRST_VALUE()中具有IGNORE NULLS的异常行为(Vertica)、Hive 学习之路 (十六)Hive 分析窗口函数 (四) LAG、LEAD、FIRST_VALUE 和 LAST_VALUE的实用技巧。

本文目录一览:

SQL Server中具有IGNORE NULLS的Last_value(在sql中null表示)

SQL Server中具有IGNORE NULLS的Last_value(在sql中null表示)

我有一个带有空值的时间序列。我想将每个null值替换为最新的non-non值。根据我的研究,Oracle SQL可以使用带有IGNORE
NULLS的Last_value轻松完成此操作。是否有使用SQL Server
2016来完成此任务的类似方法?否则,我将仅使用C#对其进行编码,但是觉得使用SQL会更快,更清洁,更容易。

Sec SCORE1   Null2   Null3   54   Null5   86   77   Null

应替换为:

Sec SCORE1   Null2   Null3   54   55   86   77   7

答案1

小编典典

您可以通过两个累积操作来执行此操作:

select t.*,       coalesce(score, max(score) over (partition by maxid)) as newscorefrom (select t.*,             max(case when score is not null then id end) over (order by id) as maxid      from t     ) t;

最里面的子查询获取有值的最新ID。最外层的那个值“扩展”到随后的行。

如果您确实要更新表格,则可以轻松地将其合并到中update。但是,Oracle无法轻松做到这一点,所以我猜想这是没有必要的。

Angular 服务器端渲染两个相关的 SERVER_REQUEST_URL 和 SERVER_REQUEST_ORIGIN

Angular 服务器端渲染两个相关的 SERVER_REQUEST_URL 和 SERVER_REQUEST_ORIGIN

下面这段代码有什么用?

export class AppModule {
  constructor(
    @Optional() @Inject(SERVER_REQUEST_URL) protected serverRequestUrl?: string,
    @Optional() @Inject(SERVER_REQUEST_ORIGIN) protected serverRequestOrigin?: string
  ) {
    console.log({ serverRequestUrl, serverRequestOrigin });
  }
}

SERVER_REQUEST_URL 和 SERVER_REQUEST_ORIGIN 这两个 injection token 在实际的 Angular 项目中有什么用?

这段代码定义了一个名为 AppModule 的 Angular 模块,并在其构造函数中注入了两个依赖项(依赖注入):SERVER_REQUEST_URL 和 SERVER_REQUEST_ORIGIN。

依赖注入是一种常见的设计模式,用于管理组件、服务、模块等之间的依赖关系。在 Angular 中,依赖注入通过注入令牌(Injection Token)来实现。

在这段代码中,@Inject() 装饰器用于指定注入令牌,@Optional() 装饰器用于标记这两个依赖项是可选的,即如果找不到对应的提供者,程序也不会报错。构造函数中的 console.log() 语句用于在控制台输出这两个依赖项的值,以便在开发过程中进行调试和测试。

在实际的 Angular 项目中,SERVER_REQUEST_URL 和 SERVER_REQUEST_ORIGIN 这两个注入令牌通常用于处理服务器端渲染(server-side rendering)相关的逻辑。SERVER_REQUEST_URL 用于获取当前请求的 URL 地址,SERVER_REQUEST_ORIGIN 用于获取请求的源地址。通过这些注入令牌,我们可以在组件、服务等中获取当前请求的相关信息,以便进行更灵活的业务逻辑处理。

在实际的 Angular 项目中,可以通过在模块的 providers 中提供对应的值来注册 SERVER_REQUEST_URL 和 SERVER_REQUEST_ORIGIN 这两个注入令牌。下面是一个示例:

import { InjectionToken } from ''@angular/core'';

export const SERVER_REQUEST_URL = new InjectionToken<string>(''SERVER_REQUEST_URL'');
export const SERVER_REQUEST_ORIGIN = new InjectionToken<string>(''SERVER_REQUEST_ORIGIN'');

@NgModule({
  // ...
  providers: [
    { provide: SERVER_REQUEST_URL, useValue: ''http://example.com/api'' },
    { provide: SERVER_REQUEST_ORIGIN, useValue: ''http://example.com'' },
  ]
})
export class AppModule { }

在上面的示例中,我们通过 providers 属性提供了 SERVER_REQUEST_URL 和 SERVER_REQUEST_ORIGIN 的值。假设我们在一个组件中注入了这两个令牌,并打印出它们的值,代码如下:

import { Component, Inject } from ''@angular/core'';
import { SERVER_REQUEST_URL, SERVER_REQUEST_ORIGIN } from ''./app.module'';

@Component({
  selector: ''app-root'',
  template: `SERVER_REQUEST_URL: {{ serverRequestUrl }}<br>SERVER_REQUEST_ORIGIN: {{ serverRequestOrigin }}`
})
export class AppComponent {
  constructor(
    @Inject(SERVER_REQUEST_URL) public serverRequestUrl: string,
    @Inject(SERVER_REQUEST_ORIGIN) public serverRequestOrigin: string
  ) { }
}

当应用程序运行时,如果我们在控制台中查看组件输出的值,可能会看到类似如下的内容:

SERVER_REQUEST_URL: http://example.com/api
SERVER_REQUEST_ORIGIN: http://example.com

这表明 SERVER_REQUEST_URL 和 SERVER_REQUEST_ORIGIN 的值已成功注入,并且组件已经正确地获取了这些值。

Could not resolve placeholder ‘server.port‘ in value ${server.port}

Could not resolve placeholder ‘server.port‘ in value ${server.port}

Could not resolve placeholder ‘server.port’ in value “${server.port}”

说明:

这个报错,我百度和csdn没有找到合理的说明

问题在线

springboot项目打war包部署到wify服务器 , 发现项目启动失败 , 报错

image-20211021112236698

思路:

肯定是swagger配置文件报错 , 和springboot的server.port端口有关系

找到对应配置

image-20211021112647157

image-20211021112448854

原因

因为springboot内嵌tomcat容器,但是打war包不依赖于内置的tomcat,所以关于服务器的配置不应该出现在配置文件中





csdn



csdn

https://blog.csdn.net/shaoming314

FIRST_VALUE()中具有IGNORE NULLS的异常行为(Vertica)

FIRST_VALUE()中具有IGNORE NULLS的异常行为(Vertica)

我在带有IGNORE NULLS参数的Vertica的FIRST_VALUE()分析函数中看到意外的行为。它似乎不应该返回NULL。

问题出现在这个很小的表中:

drop table if exists temp;
create table temp (time_ timestamp(6),name varchar(10));
insert into temp (time_) values ('2016-03-18 20:32:16.144');
insert into temp (time_,name) values ('2016-03-18 20:52:09.062','abc');

这是表的内容(从临时表中选择*):

time_                   | name
------------------------+--------
2016-03-18 20:32:16.144 | <null>
2016-03-18 20:52:09.062 | abc

这是我正在运行的查询:

select time_,first_value(name ignore nulls) over (order by time_) first_name
from temp;

以下是此查询返回的结果:

time_                   | first_name
------------------------+------------
2016-03-18 20:32:16.144 | <null>
2016-03-18 20:52:09.062 | abc

这是我从此查询中期望(和期望)的结果:

time_                   | first_name
------------------------+------------
2016-03-18 20:32:16.144 | abc
2016-03-18 20:52:09.062 | abc

上面的查询是否有一个非常基本的语法错误?在Vertica Community Edition 7.1.1上会发生此问题。

Hive 学习之路 (十六)Hive 分析窗口函数 (四) LAG、LEAD、FIRST_VALUE 和 LAST_VALUE

Hive 学习之路 (十六)Hive 分析窗口函数 (四) LAG、LEAD、FIRST_VALUE 和 LAST_VALUE

数据准备

数据格式

cookie4.txt

cookie1,2015-04-10 10:00:02,url2
cookie1,2015-04-10 10:00:00,url1
cookie1,2015-04-10 10:03:04,1url3
cookie1,2015-04-10 10:50:05,url6
cookie1,2015-04-10 11:00:00,url7
cookie1,2015-04-10 10:10:00,url4
cookie1,2015-04-10 10:50:01,url5
cookie2,2015-04-10 10:00:02,url22
cookie2,2015-04-10 10:00:00,url11
cookie2,2015-04-10 10:03:04,1url33
cookie2,2015-04-10 10:50:05,url66
cookie2,2015-04-10 11:00:00,url77
cookie2,2015-04-10 10:10:00,url44
cookie2,2015-04-10 10:50:01,url55

创建表

use cookie;
drop table if exists cookie4;
create table cookie4(cookieid string, createtime string, url string) 
row format delimited fields terminated by '','';
load data local inpath "/home/hadoop/cookie4.txt" into table cookie4;
select * from cookie4;

 

玩一玩 LAG

说明

LAG (col,n,DEFAULT) 用于统计窗口内往上第 n 行值

第一个参数为列名,
第二个参数为往上第 n 行(可选,默认为 1),
第三个参数为默认值(当往上第 n 行为 NULL 时候,取默认值,如不指定,则为 NULL)

查询语句

select 
  cookieid, 
  createtime, 
  url, 
  row_number() over (partition by cookieid order by createtime) as rn, 
  LAG(createtime,1,''1970-01-01 00:00:00'') over (partition by cookieid order by createtime) as last_1_time, 
  LAG(createtime,2) over (partition by cookieid order by createtime) as last_2_time 
from cookie.cookie4;

查询结果

结果说明

last_1_time: 指定了往上第1行的值,default为''1970-01-01 00:00:00''  
        cookie1第一行,往上1行为NULL,因此取默认值 1970-01-01 00:00:00
        cookie1第三行,往上1行值为第二行值,2015-04-10 10:00:02
        cookie1第六行,往上1行值为第五行值,2015-04-10 10:50:01
last_2_time: 指定了往上第2行的值,为指定默认值
        cookie1第一行,往上2行为NULL
        cookie1第二行,往上2行为NULL
        cookie1第四行,往上2行为第二行值,2015-04-10 10:00:02
        cookie1第七行,往上2行为第五行值,2015-04-10 10:50:01

 

玩一玩 LEAD

说明

与 LAG 相反

LEAD (col,n,DEFAULT) 用于统计窗口内往下第 n 行值

第一个参数为列名,
第二个参数为往下第 n 行(可选,默认为 1),
第三个参数为默认值(当往下第 n 行为 NULL 时候,取默认值,如不指定,则为 NULL)

查询语句

select 
  cookieid, 
  createtime, 
  url, 
  row_number() over (partition by cookieid order by createtime) as rn, 
  LEAD(createtime,1,''1970-01-01 00:00:00'') over (partition by cookieid order by createtime) as next_1_time, 
  LEAD(createtime,2) over (partition by cookieid order by createtime) as next_2_time 
from cookie.cookie4;

查询结果

结果说明

-- 逻辑与 LAG 一样,只不过 LAG 是往上,LEAD 是往下。

玩一玩 FIRST_VALUE

说明

取分组内排序后,截止到当前行,第一个值

查询语句

select 
  cookieid, 
  createtime, 
  url, 
  row_number() over (partition by cookieid order by createtime) as rn, 
  first_value(url) over (partition by cookieid order by createtime) as first1 
from cookie.cookie4;

查询结果

玩一玩 LAST_VALUE

说明

取分组内排序后,截止到当前行,最后一个值

查询语句

select 
  cookieid, 
  createtime, 
  url, 
  row_number() over (partition by cookieid order by createtime) as rn, 
  last_value(url) over (partition by cookieid order by createtime) as last1 
from cookie.cookie4;

查询结果

如果不指定 ORDER BY,则默认按照记录在文件中的偏移量进行排序,会出现错误的结果

如果想要取分组内排序后最后一个值,则需要变通一下

查询语句

select 
  cookieid, 
  createtime, 
  url, 
  row_number() over (partition by cookieid order by createtime) as rn,
  LAST_VALUE(url) over (partition by cookieid order by createtime) as last1,
  FIRST_VALUE(url) over (partition by cookieid order by createtime desc) as last2 
from cookie.cookie4 
order by cookieid,createtime;

查询结果

 

提示:在使用分析函数的过程中,要特别注意 ORDER BY 子句,用的不恰当,统计出的结果就不是你所期望的。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

今天的关于SQL Server中具有IGNORE NULLS的Last_value在sql中null表示的分享已经结束,谢谢您的关注,如果想了解更多关于Angular 服务器端渲染两个相关的 SERVER_REQUEST_URL 和 SERVER_REQUEST_ORIGIN、Could not resolve placeholder ‘server.port‘ in value ${server.port}、FIRST_VALUE()中具有IGNORE NULLS的异常行为(Vertica)、Hive 学习之路 (十六)Hive 分析窗口函数 (四) LAG、LEAD、FIRST_VALUE 和 LAST_VALUE的相关知识,请在本站进行查询。

本文标签: