【问题标题】:List distinct names Big Query列出不同的名称 Bigquery
【发布时间】:2017-11-16 16:22:56
【问题描述】:

我在 Big Query 中有下表:

|event  |count
|event1 |1
|event2 |2
|event1 |2
|event2 |1 
|event3 |4 
|event1 |3 
|event3 |5 
|event4 |5 
|event5 |4 
|event1 |3 
|event6 |5 
|event4 |5 

其中包含 6 个不同的事件:

COUNT(DISTINCT event) AS Dist_event_Count = 6

现在我想列出不同的事件。我应该做什么查询才能获得以下输出?

|event1 
|event2     
|event3          
|event4           
|event5
|event6

【问题讨论】:

  • SELECT DISTINCT event FROM YourTable 有什么问题(使用标准 SQL)?
  • SELECT DISTINCT event FROM "event_dataset.event_data" LIMIT 1000 错误:语法错误:在 [4:6] 出现意外的字符串文字 "event_dataset.event_data"
  • 是的,您不能在表名周围加上引号。我不确定你在哪里看到过这种语法。
  • 对于旧版 sql,您应该使用 [event_dataset.event_data],对于标准 sql,您应该使用 `event_dataset.event_data`
  • 是的,我最初尝试使用“..”,但结果出现错误。错误:查询:语法错误:在 [4:6] 出现意外的字符串文字“event_dataset.event_data”(错误代码:invalidQuery)结束时间 2017 年 11 月 16 日下午 4:57:52 今天当我尝试使用相同的代码时出现不同的错误:错误:查询:在第 3 行第 1 列遇到““FROM”“FROM”。期待:(错误代码:invalidQuery)结束时间 2017 年 11 月 17 日上午 9:33:05

标签: google-bigquery


【解决方案1】:

以下是 BigQuery 标准 SQL

#standardSQL
WITH `project.dataset.yourTable` AS (
  SELECT 'event1' event, 1 cnt UNION ALL
  SELECT 'event2', 2 UNION ALL
  SELECT 'event1', 2 UNION ALL
  SELECT 'event2', 1 UNION ALL
  SELECT 'event3', 4 UNION ALL
  SELECT 'event1', 3 UNION ALL
  SELECT 'event3', 5 UNION ALL
  SELECT 'event4', 5 UNION ALL
  SELECT 'event5', 4 UNION ALL
  SELECT 'event1', 3 UNION ALL
  SELECT 'event6', 5 UNION ALL
  SELECT 'event4', 5 
)
SELECT DISTINCT event
FROM `project.dataset.yourTable`

或者 - 你可以使用GROUP BY,所以在这种情况下,你也可以汇总各自的计数,如下所示

#standardSQL
WITH `project.dataset.yourTable` AS (
  SELECT 'event1' event, 1 cnt UNION ALL
  SELECT 'event2', 2 UNION ALL
  SELECT 'event1', 2 UNION ALL
  SELECT 'event2', 1 UNION ALL
  SELECT 'event3', 4 UNION ALL
  SELECT 'event1', 3 UNION ALL
  SELECT 'event3', 5 UNION ALL
  SELECT 'event4', 5 UNION ALL
  SELECT 'event5', 4 UNION ALL
  SELECT 'event1', 3 UNION ALL
  SELECT 'event6', 5 UNION ALL
  SELECT 'event4', 5 
)
SELECT event, SUM(cnt) cnt
FROM `project.dataset.yourTable`
GROUP BY event

【讨论】:

  • 感谢 Mikhail 的快速回复,我有一百万行和 15 列,一百万行,我在不同的列(1,2)上有一个不同的计数为 6(cloumn1)、43(cloumn2) .我需要查看 6 和 43 个不同值/事件的列表。
  • 这是一个问题吗?请澄清你的意思:o)如果上述答案没有解决你的问题,你可能需要用更多细节更新你的问题
【解决方案2】:

event_dataset.event_dataLIMIT 1000 中选择 DISTINCT 事件;
使用标准 SQL,您将使用反引号 event_dataset.event_data

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 2020-07-25
    • 2018-03-20
    • 1970-01-01
    相关资源
    最近更新 更多