1.软文推荐

2.软文推荐

3.软文推荐

目录: 1、Big query怎么查询表的schema 2、BigQuery中的分析函数 3、BigQuery SQL自动更新数据? 4、BigQuery中拆解字符串并平展为多行 Big query怎么查询表的schema

1、打开Bigquery选定查找范围。

2、指定搜索schema点击查找范围选项设置。

3、这样就查询成功了。BigQuery中的分析函数

在sql中做去重是一件麻烦的事,一般情况下只能通过group by 所有字段来做去重。

现在考虑一个简单的情形,我需要统计昨天天玩家身上的金币存量。

玩家的金币存量在一天中是多次变动的,最后一次变动的值才是玩家身上的真实存量。

那么就需要找出最后一次的记录,简单的方法是先对uid做group by,max(time)找到每个玩家的最后一次时间。

再和表本身做自连接,找到每个玩家最后的一条记录,在从中提取金币存量字段。

比如下面的这段sql:

如果在pandas中好几种可以获取最后最后一条记录的方法。

比如先按时间升序然后drop_duplicates(‘uid’, keep='last'),

又或者直接df.iloc[df.groupby('uid')['ts'].idxmax()]等,都比自连接简单的多。

在bigquery的语法中,提供了一种叫做分析函数的东西,

可以让我们不用自连接做到找出最后一条记录。

文档位置: 标准 SQL 中的分析函数概念

简单来说,它可以在保留原行数的情况下,实现一些聚合分析的结果,并保存到相应的行上。

比如说,我们有下面的数据:

只要你使用了group by uid,那么结果中就只有两行数据,aa和bb。

但是使用分析函数后还是4行。

它会在一个滑动窗口内使用一些函数,然后把结果保存在本行上。

比如计算累计和,结果就是:

在这些分析函数中,有一个last_value函数,它可以取出本窗口内的最后一个值。

既然有了最后这个概念,就一定是要有顺序了,所以使用last_value函数也必须要指定order by 字段。

然后就是滑动窗口,默认是从第一个值到当前值,即

RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW

我们可以指定为从开头到结束

RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING

然后需要指定分组字段和排序字段,语法为:

PARTITION BY uid ORDER BY ts

这种语法是一种window的结构,它写在select语句的最后

注意最后的group by 1 2 3语句,

在上面说过,使用分析函数后,行数是不变的,

这样就有重复的数据,一个玩家有多少次金币变化记录就有多少行的重复记录,

所有需要 group by做一次去重得到最后的结果。

虽然看起来sql行数差不多,但是分析函数提供了更多的可能性,比如上面的累加和,普通的sql就是无法完成的。

BigQuery SQL自动更新数据?

sql表数据自动更新

要实现两个表之间的数据的自动更新,可以采用触发器来实现,触发器的实现方法:

1、A表有数据更新的时候自动更新B表:

create or replace trigger tg after update on A for each row

begin

update B set xx=xx where b.aid = a.id;

end;

/

2、A表插入数据时,B表更新数据:

create or replace trigger tgg after insert on A for each row

begin

insert B values(xxxx);

end;

/

如果不需要每条数据都跟新,只需要在每次A更新的时候更新B,可以将后面的for each row去掉。

BigQuery中拆解字符串并平展为多行

我在介绍bigquery的半结构化数据中介绍过我们总表的结构,

但是有些命令的参数个数是不固定的,比如玩家在一次战斗中击杀的敌人种类,

有可能有一种,也有可能有两种三种...

这种在表中是直接用#号拼接在一起的,如下所示:

上面这个例子中,本来是3行数据,some_numbers是一个数组,

然后直接把some_number接到from的后面,就可以把这个数组展开,并且和前面的id是绑定的。

参照这个例子,我们只需要使用split()函数把#号拆成数组,在接到from后面就可以变成两行了。

相关文章 8

1

美国物理机,美国物理机服务器租用 2分钟前

目录:1、美国大学物理学专业方向有哪些?美国大学最受中国学生欢迎的专业有哪些?2、如何利用美国白蛾的生物学特征进行物理机槭防治...

2

站群服务器购买,站群专用服务器 2分钟前

目录:1、做站群的一般购买大多的空间服务器2、怎么才能买到便宜好用的站群服务器,需要注意哪些?3、服务器怎么买4、做香港站群的时...

3

seo页面优化平台的看易速达,优速SEO 4分钟前

目录:1、SEO网站优化的方法 SEO网站优化的方法有哪些2、网站seo内容页面如何优化3、网站SEO优化入门,看这一篇就够了(6000字)4、seo页面...

4

传奇4可以赚钱吗,传奇4收益 7分钟前

目录:1、传奇4打金一月收入2、传奇4挖矿换什么币3、传奇4怎么搬砖赚人民币4、2022传奇4一天能赚多少钱传奇4打金一月收入 传奇打金一个月...

5

aws挖chia的简单介绍 7分钟前

目录:1、亚马逊AWS的云计算服务有哪些优势2、Nvidia Omniverse AWS 环境配置3、亚马逊宣布与通讯公司Slack合作,后者将采用AWS视频会议技术4、...

6

关于edgenat韩国vps测评的信息 10分钟前

目录:1、韩国vps服务器锐一网络的好吗?2、美国VPS,香港VPS,韩国VPS,国外VPS哪个国家好3、vps韩国uplus线路好吗4、日本vps和韩国vps哪个延...

7

韩国skvps,韩国总统 12分钟前

目录:1、vps韩国uplus线路好吗2、求bigbang的视频资料!3、哪款海外 VPS 性价比高vps韩国uplus线路好吗 非常不错,韩国vps做为距离中国近的国外...

8

封udp端口,常用udp端口 15分钟前

目录:1、如何在TPLink 路由器上禁止UDP端口1024-655342、如何禁止UDP端口3、如何彻底屏蔽掉UDP端口?4、路由器怎么屏蔽本地局域网主机的某个...