小编Fel*_*ffa的帖子

如何在 BigQuery 上获得“上周一”?

使用 BigQuery,我需要找出“上周一”是什么时候。我如何计算这个日期?

例如,今天是星期一,所以如果调用该公式应该返回今天的日期。昨天它应该返回上个月的 27 号。

基于https://blog.svpino.com/2015/08/03/how-to-determine-last-mondays-date-in-bigquery

google-bigquery

1
推荐指数
2
解决办法
4096
查看次数

Oracle 有条件排名

我目前正在尝试根据自定义条件对结果进行排名。让我们假设我的数据如下所示:

col1   col2    col3     
-----------------------
1       1       2       
1       3       33   
2       4       5   
3       6       40  
1       2       5
3       5       10 
Run Code Online (Sandbox Code Playgroud)

我现在想按 col1 分组并按 col2 排序,然后对结果进行排名。但是,我只想在 col3 大于 30 时提高排名。因此结果应如下所示:

col1   col2    col3    rank     
-----------------------------
1       1       2       1   
1       2       5       1
1       3       33      2  
2       4       5       1 
3       5       10      1 
3       6       40      2
Run Code Online (Sandbox Code Playgroud)

我只是找不到解决问题的优雅方法。如果我只使用经典排名,那么整个事情当然行不通;例如:

RANK() OVER (PARTITION BY col1 ORDER BY col2)

如果可能的话,由于性能问题,我想在这里使用窗口函数。我也在 Google 的 Bigquery 环境中工作。

sql oracle

1
推荐指数
1
解决办法
4590
查看次数

如何使用 BigQuery 使用 reddit 数据集查找 n-gram

我正在查看 reddit 数据集和一个旧的问题,该问题研究使用 BigQuery 查找双元组 - 但是该问题的答案不适用于 URL、引号等。有没有更好的方法来做到这一点?也将其推广到三元组而不是二元组?

sql reddit google-bigquery

1
推荐指数
1
解决办法
396
查看次数

在 BigQuery 中滚动 90 天活跃用户,提高性能(DAU/MAU/WAU)

我正在尝试获取特定日期的唯一事件数量,回溯 90/30/7 天。我已经使用下面的查询处理了有限数量的行,但是对于大型数据集,我从聚合字符串中得到内存错误,该错误变得很大。

我正在寻找一种更有效的方法来实现相同的结果。

表看起来像这样:

+---+------------+-------------+
|   |     date   |     userid  |
+---+------------+-------------+
| 1 | 2013-05-14 | xxxxx       |
| 2 | 2017-03-14 | xxxxx       |
| 3 | 2018-01-24 | xxxxx       |
| 4 | 2013-03-21 | xxxxx       |
| 5 | 2014-03-19 | xxxxx       |
| 6 | 2015-09-03 | xxxxx       |
| 7 | 2014-02-06 | xxxxx       |
| 8 | 2014-10-30 | xxxxx       |
| ..| ...        | ...         |
+---+------------+-------------+
Run Code Online (Sandbox Code Playgroud)

所需结果的格式:

+---+------------+---------------------------------------------+
|   | …
Run Code Online (Sandbox Code Playgroud)

sql google-bigquery bigquery-standard-sql

1
推荐指数
1
解决办法
2168
查看次数

在 Snowflake 上删除行或重新创建表是否更有效

我有一个包含 600M 行的表,我想删除其中 id 来自另一个表的行的子集。

删除行或重新创建表会更有效吗?

(基于 dbt Slack 上的讨论)

sql optimization sql-delete snowflake-cloud-data-platform

1
推荐指数
1
解决办法
922
查看次数

我的数据无法进行日期分区,如何使用群集?

目前,我正在使用以下查询:SELECT ID,Key FROM mydataset.mytable ,其中ID = 100077113?和Key ='06019'

我的数据有1亿行:

ID-唯一

钥匙-可以拥有约10,000个钥匙

如果我知道查找ID的键,则可以在大约10,000行上完成,并且工作更快,并且处理的数据更少。

如何在BigQuery中使用新的集群功能来对字段Key进行分区?

clustered-index google-bigquery partition

0
推荐指数
1
解决办法
1040
查看次数