AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[google-bigquery](dba)

Martin Hope
Kokizzu
Asked: 2022-10-08 08:30:47 +0800 CST

截断表是否会刷新 BigQuery 上的物化视图?

  • 5

只需要确保在截断表之前,依赖于该表的物化视图上的所有数据也会被擦除吗?

此外,如果在该表上发生插入后重新创建(删除并再次创建)物化视图,源表的旧行是否会出现在物化视图上?

google-bigquery
  • 1 个回答
  • 10 Views
Martin Hope
Rachit Singh
Asked: 2021-09-20 03:02:09 +0800 CST

计算年复一年和月复一个月

  • 0

我在 BigQuery 中有一个表格,它跟踪从 2019 年 6 月开始的每个季度的支出金额。我需要计算年同比和月同比百分比变化。我已经提到了他们两个的适当公式。对 YoY 和 MoM 跨行执行计算对我来说有点棘手。有人可以帮忙吗?

桌子:

period      report_date  spend_dollar
30-jun-19   2019-06-30    5022087
30-sept-19  2019-09-30    4958617
31-dec-19   2019-09-30    5038630
31-mar-20   2020-03-31    5156327
30-jun-20   2020-06-30    5344183
30-sept-20  2020-09-30    5562796
31-dec-20   2020-12-31    5696796
31-mar-21.  2021-03-31    5749467
30-jun-20.  2021-06-30    5680087

同比预期产出:

period      report_date  spend_dollar.   year_over_year
30-jun-19   2019-06-30    5022087        -
30-sept-19  2019-09-30    4958617      -
31-dec-19   2019-09-30    5038630        -
31-mar-20   2020-03-31    5156327        -
30-jun-20   2020-06-30    5344183        6.4
30-sept-20  2020-09-30    5562796        12.18
31-dec-20   2020-12-31    5696796        13.1
31-mar-21.  2021-03-31    5749467        11.5
30-jun-20.  2021-06-30    5680087        6.3
YoY formula example formula: 
((spend_dollar value for date 2021-06-30/spend_dollar for date 2020--06-30)-1)*100, 
((spend_dollar value for date 2020-03-30/spend_dollar for date 2020--03-30)-1)*100 
..

月度预期产出:

period      report_date  spend_dollar.   month_over_month
30-jun-19   2019-06-30    5022087        -
30-sept-19  2019-09-30    4958617.       -1.2
31-dec-19   2019-09-30    5038630.       1.6
31-mar-20   2020-03-31    5156327        2.3
30-jun-20   2020-06-30    5344183.       6.4
30-sept-20  2020-09-30    5562796.       4.1
31-dec-20   2020-12-31    5696796        2.4
31-mar-21.  2021-03-31    5749467        0.092
30-jun-20.  2021-06-30    5680087        -1.2
Month-over-Month example formula: 
((spend_dollar value for date 2021-06-30/spend_dollar for date 2021--03-30)-1)*100 ,
((spend_dollar value for date 2021-03-30/spend_dollar for date 2020--12-31)-1)*100
..


google-bigquery
  • 1 个回答
  • 415 Views
Martin Hope
Andrea Moro
Asked: 2021-08-20 13:49:20 +0800 CST

bigquery 中的 UNNEST 运算符:聚合结果时的奇怪行为

  • 0

我试图了解 UNNEST 运算符如何在存储CRUX 数据(Chrome UX 报告)的 Google 的公共数据库上工作。

在此页面上提供了一些示例。

我可以理解以下内容:

  • 所有密度的总和为 1(或 100%)
  • 密度分为三种类型(手机、平板电脑、台式机)
  • bin start 和 end 在使用时对数据进行切片

本文提供了一些使用 UNNEST 运算符的示例,该运算符扩展了最里面的数组,从而也可以进行分组操作。

所以像下面这样的查询

SELECT
  SUM(fcp.density) AS fast_fcp
FROM
  `chrome-ux-report.all.201809`,
  UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
  origin = 'https://developers.google.com'

返回所有 FCP 密度的总和,值为 0.999999。

我本来希望第二个 SUM 在第二个 UNNESTED 运算符上的工作类似;但是,当我使用两个字段并进行求和时,会发生一些奇怪的事情。

例如以下

SELECT
  SUM(fcp.density) AS fast_fcp,
  SUM(lcp.density) AS fast_lcp
FROM
  `chrome-ux-report.all.201809`,
  UNNEST(first_contentful_paint.histogram.bin) AS fcp
  UNNEST(largest_contentful_paint.histogram.bin) AS lcp
WHERE
  origin = 'https://developers.google.com'

产生类似的东西

Row f0_ f1_ 
1   393.12850000000896 352.06599999922156

奇怪的是,如果不使用聚合,unnest 运算符会按预期工作,并且列会按预期在列中展开。

有人可以帮助我了解门后发生的事情以及如何获得一系列领域的总和。

例如

Site;fcp;cls;fid
https://developers.google.com;0.4;0.2;0.1
https://www.google.com;0.1;0.4;0.3

最终目标将是选择一个起始值的底层括号来找出“好”的网站,但我需要先确定为什么上述方法不起作用。

google-bigquery
  • 2 个回答
  • 282 Views
Martin Hope
Mallikarjun
Asked: 2021-01-08 00:59:58 +0800 CST

如何从 bigquery 获得每周未绑定的保留?

  • 1

我需要获得每周留存用户。如果用户在第 4 周进行了交易,则该用户在第 0 周、第 1 周、第 2 周、第 3 周、第 4 周时在那里。

如果用户在第 0 周和第 3 周进行了交易,那么用户将在第 0 周、第 1 周、第 2 周、第 3 周到达谢谢@bbaird,

我正在用准确的信息和问题更新问题

这是我的表格数据

TxnId 用户身份 交易周
T1 U1 0
T2 U2 0
T3 U3 0
T4 U4 0
T5 U1 0
T6 U2 0
T7 U6 0
T8 U1 1
T9 U8 1
T10 U12 1
T11 U3 1
T12 U5 1
T13 U9 2
T14 U15 2
T15 U20 3
T16 U15 3
T17 U15 3
T18 U8 3
T19 U9 4
T20 U20 5

我正在寻找的结果

星期 active_users_count
0 11
1 8
2 4
3 4
4 2
5 1

用户数有点累积但唯一的用户。

例如,如果用户 1 在第 0 周执行了 3 次事务,则第 0 周的计数为 1

如果用户 1 在第 0 周执行了 3 次交易,在第 2 周执行了 2 次交易,在第 3 周执行了 1 次交易,那么计数将是这样的

week-0 -> 1(即他已执行交易 >= 第 0 周)

第 1 周 -> 1(即他已执行交易 >= 第 1 周)

第 2 周 -> 1(即他已执行交易 >= 第 2 周)

第 3 周 -> 1(即他已执行交易 >= 第 3 周)

可以有任意周数。它不固定为 4 周或 8 周。

google-bigquery
  • 1 个回答
  • 97 Views
Martin Hope
Sociopath
Asked: 2020-12-03 06:11:56 +0800 CST

如何从列中查找连续的非零值

  • 0

我有一张如下表

user  timestamp            counts   
xyz   01-01-2020 00:05:00   12
xyz   01-01-2020 00:10:00   11
xyz   01-01-2020 00:15:00   45
xyz   01-01-2020 00:20:00   0
xyz   01-01-2020 00:25:00   0
xyz   01-01-2020 00:30:00   13
xyz   01-01-2020 00:35:00   12
xyz   01-01-2020 00:40:00   0

我想根据计数列中的最大连续值(非零)值对其进行切片,并找出该持续时间内的开始时间戳、结束时间戳和总计数

starttime            endtime               total_count
01-01-2020 00:05:00  01-01-2020 00:15:00   68

如何使用 BigQuery 实现这一目标

google-bigquery
  • 1 个回答
  • 306 Views
Martin Hope
xyz
Asked: 2020-07-30 01:45:22 +0800 CST

与总数比较,与主要类别的百分比比较,按期间比较,例如逐月比较以获得增长百分比

  • 0

这是一个很大的问题。如果无法通过论坛给出具体的解决方案,我正在寻找可能的总体方向,可能的解决方案。我在 BigQuery 中工作,但语法几乎与 SQL 相同,但某些函数除外。我对高级 SQL 比较陌生,我的任务是创建以下报告:

在此处输入图像描述

从下表:

在此处输入图像描述

报告需要通过 Google Data Studio 呈现,其中无法进行数据建模,因此必须提前在 SQL 中准备数据,然后才能加载到 Data Studio 中,Data Studio 将是可视化/呈现工具。

我的想法是为每个所需的时间段编写一个查询,然后将所有这些查询联合起来,例如,“上周”作为一个时间段的查询将是:

SELECT distinct orderid, 
       net_revenue,
       country,
       main_category, sub_cat, sub_sub_cat --there's several nested categories
       'last week' as period,
FROM table_orders
join table_order_values
  on table_orders.orderid = table_order_values.orderid
full outer join categories as cats
  on cats.product_id = table_orders.product_id
join countries
  on table_order_values.country = countries.country
and table_order_values.date > 
    DATE_SUB(DATE_TRUNC(CURRENT_DATE(), WEEK(sunday)), INTERVAL 1 WEEK) 
    AND table_order_values.date <= 
        DATE_TRUNC(CURRENT_DATE(), WEEK(sunday))

...在 UNION ALL 之后的不同时期的一堆表格的最终表格看起来像这样: 在此处输入图像描述

但是,对于这个最终表,我不知道如何获得每个时期的增长百分比(因此比较月比月或周比周等),或者如何正确计算子类别的收入占总收入的百分比(以及不是每个时期都有一堆声明的变量),甚至更难 - 从主要类别中获得任何子类别的收入百分比,然后还需要按国家/地区过滤......

这甚至可能是要求的方式吗?我是否可以从一开始就以某种方式重组数据,以使这些百分比占总数、主要类别和一段时间内的增长成为可能?

google-bigquery
  • 1 个回答
  • 28 Views
Martin Hope
vpetersson
Asked: 2020-06-29 05:44:51 +0800 CST

计算具有两个时间条件的事件总数

  • 0

我在 BigQuery 中有一个如下所示的表:

    schema = [
        bigquery.SchemaField('timestamp', 'TIMESTAMP', mode='REQUIRED', description='Data point timestamp'),
        bigquery.SchemaField('event_id', 'STRING', description='EventID'),
        [...]
    ]

该表有一个相当大的数据集,我试图找到一个有效的查询,它返回过去 24 小时内以及过去 N 天内发生的事件数。即两条不同的记录,条件不同但相同event_id。我不太关心实际的event_id,而是分布。

理想情况下,查询将返回如下内容:

7_days: 20
30_days: 15
60_days: 7

如果在纯 SQL 中无法做到这一点,我也可以使用 Pandas。

google-bigquery
  • 1 个回答
  • 12 Views
Martin Hope
emily.mi
Asked: 2019-09-24 07:21:17 +0800 CST

如果我在内部联接中使用 where 子句,为什么没有性能差异?

  • 0

基本上我在 BQ 中有两种不同类型的查询。第一个:

select q2.name, q1.* , q2.val1 from table1 as q1
inner join 
(select name,val1, val2 from table2) as q2
on q1.name = q2.name

第二个是:

select q2.name, q1.* , q2.val1 from table1 as q1
inner join 
(select name,val1, val2 from table2  where val1 = "X") as q2
on q1.name = q2.name

如您所见,唯一的区别是过滤 X 值。当我过滤 table2 内的 X 值时,table2 的大小几乎是一半。因此,当我应用“where”子句时,我的期望是减少数据字节。但是,当我--dry_run在 BQ cli 中运行时。我得到了完全相同的数据字节。

Query successfully validated. Assuming the tables are not modified, running this query will process 6958332498714 bytes of data.

那么有人可以解释为什么我得到完全相同的处理数据大小吗?

performance google-bigquery
  • 1 个回答
  • 51 Views
Martin Hope
Nrj
Asked: 2019-01-03 22:08:08 +0800 CST

如何将时间戳转换为日期和时间

  • 0

我目前正在研究 bigquery(标准 sql),其中有一个timestamp字段,我想将其转换为date and time2 个单独的列。我试过这样做select EXTRACT(DATE FROM timestamp) from table。

我也试过投射timestamp到date,但它给了我一个错误。任何建议将不胜感激

Input

timestamp             
1539167364779001       
1542242226310005
1544881556726002

Expected output

date         time
10/10/2018   3:59:24 PM 
11/15/2018   6:07:06 AM
12/15/2018   7:15:56 PM
mysql google-bigquery
  • 1 个回答
  • 328 Views
Martin Hope
user68575
Asked: 2018-05-05 09:49:41 +0800 CST

Oracle 中的等效成语?

  • 3

我正在阅读这篇关于Google BigQuery的文章:

探索强大的 SQL 模式:ARRAY_AGG、STRUCT 和 UNNEST

他们使用了几个函数,我试图弄清楚 Oracle 的等价物是什么,如果它们存在的话。

我正在研究 Oracle 文档,发现类似于ARRAY_AGGOracle 中称为LISTAGG.

我一直没能找到的是和的惯用等价STRUCT物UNNEST。

STRUCT有没有和UNNEST我必须自己写的东西做同样的事情的东西?

oracle google-bigquery
  • 1 个回答
  • 317 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve