BigQuery:按表名分组

     2023-03-24     84

关键词:

【中文标题】BigQuery:按表名分组【英文标题】:BigQuery: Group by table name 【发布时间】:2014-02-19 14:40:14 【问题描述】:

我的数据集 (ds1) 如下所示:

2014_01_01_tableA
2014_01_01_tableB

2014_01_02_tableA
2014_01_02_tableB

查询:

SELECT date, COUNT(1) AS counter 
FROM [ds1.2014_01_01_tableA], [ds1.2014_01_01_tableB], [ds1.2014_01_02_tableA], [ds1.2014_01_02_tableB] 
GROUP BY date;

返回:

date, counter
2014-01-01, 100
2014-01-02, 200

是否也可以按表名分组?可能是这样的? ...

SELECT date, COUNT(1) AS counter, TABLE_NAME() AS table_name
FROM [ds1.2014_01_01_tableA], [ds1.2014_01_01_tableB], [ds1.2014_01_02_tableA], [ds1.2014_01_02_tableB] 
GROUP BY table_name, date;

预期结果:

date, counter, table_name
2014-01-01, 50, 2014_01_01_tableA
2014-01-01, 50, 2014_01_01_tableB
2014-01-02, 100, 2014_01_02_tableA
2014-01-02, 100, 2014_01_02_tableB

TABLE_NAME() AS table_name 不存在,很遗憾。

【问题讨论】:

【参考方案1】:

不幸的是,没有办法干净地做到这一点。我添加了一个内部功能请求。

丑陋的做法是:

SELECT date, COUNT(1) AS counter, table_name
FROM 
 (SELECT *, "2014_01_01_tableA" as table_name FROM [ds1.2014_01_01_tableA]), 
 (SELECT *, "2014_01_01_tableB" as table_name FROM [ds1.2014_01_01_tableB]), 
 (SELECT *, "2014_01_02_tableA" as table_name FROM [ds1.2014_01_02_tableA]), 
 (SELECT *, "2014_01_02_tableB" as table_name FROM [ds1.2014_01_02_tableB])
GROUP BY table_name, date;

【讨论】:

现在有“表通配符函数”能够按表名进行分组,感觉比以往任何时候都更需要它。 @jordan-tigani - 这方面有什么进展吗? @jordan-tigani 也对此感到好奇。【参考方案2】:

现在可以使用_TABLE_SUFFIX 参数和表通配符。

SELECT date, COUNT(1) AS counter, _TABLE_SUFFIX as table_name
FROM `ds1.*`
WHERE _TABLE_SUFFIX IN ('2014_01_01_tableA', '2014_01_01_tableB', '2014_01_02_tableA', '2014_01_02_tableB')
GROUP BY table_name, date

_TABLE_SUFFIXFROM 语句中的通配符捕获的任何内容。它可以是部分表后缀或完整的表名。例如,如果您使用FROM ds1.2014_01_*,则对应的_TABLE_SUFFIX 将是01_tableA

【讨论】:

按表名查找 Eloquent 类

】按表名查找Eloquent类【英文标题】:FindEloquentClassbyTableName【发布时间】:2022-01-0617:41:39【问题描述】:我目前正在围绕旧数据库包装Laravel/Eloquent并建立关系,但是我遇到了一些现有系统的动态特性的问题。一些关系是在数据... 查看详情

powerdesigner导出excel按表名排序(代码片段)

PowerDesigner导出excel按表名排序一、导出到第一个sheet页,并按表名排序\'将powerdesigner建好的表导出为excel文件\'1、使用Ctrl+Shift+X打开编辑页面\'2、复制以下代码OptionExplicitDimrowsNumrowsNum=2DimModelSetModel=ActiveModelIf(ModelIsNothing)Or(NotModel.I... 查看详情

按表中的分组记录运行总计

】按表中的分组记录运行总计【英文标题】:Runningtotalbygroupedrecordsintable【发布时间】:2010-10-0103:33:32【问题描述】:我有一张这样的表(Oracle,10)AccountBookdateAmount120080101100120080102101220080102200120080103-200...我需要的是按Accountorderb... 查看详情

sql在mssql服务器上按表名查找表(代码片段)

查看详情

按表分组,列出另一个属性的所有一个属性[重复]

】按表分组,列出另一个属性的所有一个属性[重复]【英文标题】:Groupbyontable,listallofoneattributeforeachofanotherattribute[duplicate]【发布时间】:2013-12-0905:11:52【问题描述】:我正在尝试按名称对这些数据进行分组,而不是当前的查询... 查看详情

sql按表分组然后对其进行排序。(代码片段)

查看详情

多表操作

...表查询(多次查询)  一对一:正向查询按字段,反向按表名小写  一对多:正向按字段(正向查询一定会查出一个来),反向查询按表名小写_set.all()(放回结果是queryset对象)  多对多:正向查询按字段.all()(正向查询... 查看详情

表名上的特殊字符 Bigquery

】表名上的特殊字符Bigquery【英文标题】:SpecialcharactersontablenamesBigquery【发布时间】:2021-07-2714:47:32【问题描述】:有谁知道如何在表名中包含特殊字符(如$),或者如果表已经存在且名称中带有$,那么如何在bigquery中提取它... 查看详情

BigQuery 存储过程,用于捕获表名以及该表名的记录数

】BigQuery存储过程,用于捕获表名以及该表名的记录数【英文标题】:BigQuerystoredproceduretocapturetablenamealongwithnumberofrecordsforthattablename【发布时间】:2020-11-0318:32:43【问题描述】:我在BigQuery中创建了以下存储过程,以获取表名列... 查看详情

BigQuery - 按数组分组

】BigQuery-按数组分组【英文标题】:BigQuery-Groupbyonarrays【发布时间】:2018-11-1920:16:24【问题描述】:我想在一个数组上分组。示例查询:#standardSQLWITH`project.dataset.table`AS(SELECT\'compute\'description,\'["key":"application","value":"scaled-server","k... 查看详情

BigQuery 提取昨天的数据,其中日期在表名中为 filename20181203

】BigQuery提取昨天的数据,其中日期在表名中为filename20181203【英文标题】:BigQueryextractdataforyesterdaywheredateisinthetablenameasfilename20181203【发布时间】:2018-12-1016:28:50【问题描述】:我想提取大查询中的数据如下文件是文件名20181201... 查看详情

如何在 BigQuery 中按外键分组?

】如何在BigQuery中按外键分组?【英文标题】:HowtoGROUPBYaforeignkeyinBigQuery?【发布时间】:2016-01-1511:38:20【问题描述】:我在BigQuery中工作。我有三个表:分支、区域(分支的集合)和按月按分支的支出。CREATETABLEregion(idintegerNOTNULL... 查看详情

如何对 BigQuery 中的重复字段进行分组

】如何对BigQuery中的重复字段进行分组【英文标题】:HowtodogroupbyonrepeatedfieldinBigQuery【发布时间】:2017-05-1807:15:48【问题描述】:在BigQuery中,我使用以下架构创建了一个表idINTEGERNULLABLEvisitsINTEGERNULLABLEdimensionsRECORDREPEATEDdimensions.v... 查看详情

BigQuery - 分组并使用数组字段作为过滤器

】BigQuery-分组并使用数组字段作为过滤器【英文标题】:BigQuery-Groupbyanduseanarrayfieldasafilter【发布时间】:2019-10-1717:56:04【问题描述】:大家好,我看到有一些关于数组分组的问题,但没有一个问题(据我搜索)没有使用数组字... 查看详情

将数组分组为数组 bigquery

】将数组分组为数组bigquery【英文标题】:groupingarraysintoarraysbigquery【发布时间】:2022-01-1706:33:38【问题描述】:我有一个如下所示的表格:OrderidItem_idAvailabilityDate1abc13(F1,F2)11-10-20211xxx12(F1,F3)11-10-20212xxx12(F2,F3)13-10-2021......我想通... 查看详情

时间段之间的 BigQuery 计数实例分组依据

】时间段之间的BigQuery计数实例分组依据【英文标题】:BigQueryCountInstancesbetweentimeperiodGroupBy【发布时间】:2016-03-0416:40:18【问题描述】:我有一个订单表上传到BigQuery,其中包含以下标题ConsumerID、TransactionDate、Revenue、OrderIDConsume... 查看详情

BigQuery 错误消息帮助,我是初学者。表名缺少数据集??我可以尝试啥来解决这个问题?

】BigQuery错误消息帮助,我是初学者。表名缺少数据集??我可以尝试啥来解决这个问题?【英文标题】:BigQueryerrormessagehelp,I\'mabeginner.Tablenamemissingdataset??WhatcanItrytoremedythis?BigQuery错误消息帮助,我是初学者。表名缺少数据集?... 查看详情

bigquery 按除少数之外的所有列分组

】bigquery按除少数之外的所有列分组【英文标题】:bigquerygroupbyallcolumnsexceptafew【发布时间】:2019-02-2017:42:28【问题描述】:我有一个包含大量字段的表,我试图按除我要求和的两个值之外的所有值进行分组。我想做类似的事情SE... 查看详情