Sql Google BigQuery创建简单计数表

Sql Google BigQuery创建简单计数表,sql,google-bigquery,Sql,Google Bigquery,我想使用Google Bigquery来存储我的网站中某些关键字的搜索次数。我创建如下表结构: | date | keyword | number_of_searches | | 2017-03-29 | pizza | 1 | SELECT myday as date, keyword, count(1) as number_of_search FROM table group by 1,2 如果日期和关键字的组合已经存

我想使用Google Bigquery来存储我的网站中某些关键字的搜索次数。我创建如下表结构:

| date       | keyword | number_of_searches |
| 2017-03-29 | pizza   | 1                  |
SELECT 
   myday as date,
   keyword,
   count(1) as number_of_search
FROM table
group by 1,2

如果日期和关键字的组合已经存在,我想增加搜索次数值。

所以您需要一个解决方案来存储特定关键字的搜索次数

使用BigQuery技术,您需要改变一些方法

让我们讨论一下传统的步骤:
-使用
选择
查看今天是否有行
-如果没有,则插入一个默认值
-存在时,使用
UPDATE
语句递增计数器

对于BigQuery,主要的变化是它是仅附加的,不适合执行UPDATE语句,您需要改变分析数据的方式并简化收集。不要像上面那样执行3个步骤,而是执行一个:
-为每个搜索插入新行

这样,您将得到多个行,您可以聚合以找出值,并可以运行查询以找出您对查询进行了多少次搜索,结果如下:

| date       | keyword | number_of_searches |
| 2017-03-29 | pizza   | 1                  |
SELECT 
   myday as date,
   keyword,
   count(1) as number_of_search
FROM table
group by 1,2

所以您需要一个解决方案来存储特定关键字的搜索次数

使用BigQuery技术,您需要改变一些方法

让我们讨论一下传统的步骤:
-使用
选择
查看今天是否有行
-如果没有,则插入一个默认值
-存在时,使用
UPDATE
语句递增计数器

对于BigQuery,主要的变化是它是仅附加的,不适合执行UPDATE语句,您需要改变分析数据的方式并简化收集。不要像上面那样执行3个步骤,而是执行一个:
-为每个搜索插入新行

这样,您将得到多个行,您可以聚合以找出值,并可以运行查询以找出您对查询进行了多少次搜索,结果如下:

| date       | keyword | number_of_searches |
| 2017-03-29 | pizza   | 1                  |
SELECT 
   myday as date,
   keyword,
   count(1) as number_of_search
FROM table
group by 1,2

BigQuery不是更新的最佳选择。为每次搜索插入行,然后在查询表时对行进行计数。您的比率较低。重要信息:因此,您必须使用投票下方张贴答案左侧的勾号来标记已接受的答案。这将提高你的利率。通过访问此链接了解其工作原理:BigQuery不适合更新。为每次搜索插入行,然后在查询表时对行进行计数。您的比率较低。重要信息:因此,您必须使用投票下方张贴答案左侧的勾号来标记已接受的答案。这将提高你的利率。通过访问此链接了解其工作原理: