【问题标题】:Does anyone know how to SQL this query in Google Big Query?有谁知道如何在 Google Big Query 中对这个查询进行 SQL 查询?
【发布时间】:2019-02-20 19:51:44
【问题描述】:

我有一个格式如下的第一个数据库:

transaction_time  id
2009-12-12 12:12  12345
2009-12-12 12:13  12346
...               ...

第二个数据库格式如下:

id                name
12345             abc
12346             bcd
...               ...

我想在标准 SQL 中为 Google Big Query 编写一个查询,以计算在同一日期出现的所有相同 id,然后返回出现的名称(如在 Excel VLOOKUP 中)。

我认为应该是这样的:

SELECT
  DATETIME "2008-12-25 15:30:00" as original,
  DATETIME_TRUNC(DATETIME "2008-12-25 15:30:00", DAY) as truncated

select t2.name, t1.id
from table1 t1 join
     table2 t2
     on t2.id = t1.request_time

有人可以确认吗?或者在标准 SQL 中是否有 GROUP BY 函数用于大查询?好像没找到!

非常感谢!

【问题讨论】:

  • 期望的结果会有所帮助。

标签: sql google-bigquery bigquery-standard-sql


【解决方案1】:

这是你想要的吗?

select date(t1.request_time) as dte, count(*)
from table1 t1 join
     table2 t2
     on t2.id = t1.request_time
group by dte
order by dte;

当然,标准 SQL 支持GROUP BY——从查询的角度来看,它是一个非常实用的数据库。

还是这个?

select t2.name, count(*)
from table1 t1 join
     table2 t2
     on t2.id = t1.request_time
where date(t1.request_date) = date('2008-12-25')
group by t2.name;

【讨论】:

    猜你喜欢
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    相关资源
    最近更新 更多