Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql bigquery中基于id和时间的数据分组_Sql_Google Bigquery - Fatal编程技术网

Sql bigquery中基于id和时间的数据分组

Sql bigquery中基于id和时间的数据分组,sql,google-bigquery,Sql,Google Bigquery,我正在做一个查询,可以根据ID和时间聚合数据。我已经成功地根据ID聚合了数据,但是当我添加时间时,查询无法识别时间列 示例代码: SELECT DATE(Request_Timestamp) as Date, ID, SUM(CASE WHEN Language = 'EN' THEN 1 ELSE 0 END) AS lang_EN, SUM(CASE WHEN Language = 'SN' THEN 1 ELSE 0 END) AS lang_SN, FROM (

我正在做一个查询,可以根据ID和时间聚合数据。我已经成功地根据ID聚合了数据,但是当我添加时间时,查询无法识别时间列

示例代码:

SELECT
DATE(Request_Timestamp) as Date,
     ID, 
 SUM(CASE WHEN Language = 'EN' THEN 1 ELSE 0 END) AS lang_EN,
 SUM(CASE WHEN Language = 'SN' THEN 1 ELSE 0 END) AS lang_SN,

 FROM (
   SELECT 
    DATE(Request_Timestamp),
     ID, 
      CASE 
        WHEN Language in ('EN', 'English') THEN 'EN' 
        WHEN Language in ('MY', 'Malay')  THEN 'MY' ELSE Language 
      END AS Language,
     
   FROM table
   GROUP BY   ID, Language, DATE(Request_Timestamp)
 )
 GROUP BY  ID, DATE(Request_Timestamp)
)
样本输入:

样本输出

错误(选择后):


更新:它与Request\u Timestamp一起工作,但与DATE(Request\u Timestamp)不一起工作。

别名丢失,额外,我删除了吗

SELECT
DATE(Timestamp),
     ID, 
 SUM(CASE WHEN Language = 'EN' THEN 1 ELSE 0 END) AS lang_EN,
 SUM(CASE WHEN Language = 'SN' THEN 1 ELSE 0 END) AS lange_SN

 FROM                
   FROM table
 GROUP BY  ID, DATE(Timestamp)

别名丢失了,额外的,我删除了吗

SELECT
DATE(Timestamp),
     ID, 
 SUM(CASE WHEN Language = 'EN' THEN 1 ELSE 0 END) AS lang_EN,
 SUM(CASE WHEN Language = 'SN' THEN 1 ELSE 0 END) AS lange_SN

 FROM                
   FROM table
 GROUP BY  ID, DATE(Timestamp)
已解决:

SELECT
     DATE,
        ..
    
     FROM (
       SELECT 
        DATE(Request_Timestamp)as DATE,
         ID, 
          CASE 
           ..
          END AS Language,
         
       FROM table
       GROUP BY   ID, Language, Request_Timestamp
     ) t
     GROUP BY ID, DATE, Language 
已解决:

SELECT
     DATE,
        ..
    
     FROM (
       SELECT 
        DATE(Request_Timestamp)as DATE,
         ID, 
          CASE 
           ..
          END AS Language,
         
       FROM table
       GROUP BY   ID, Language, Request_Timestamp
     ) t
     GROUP BY ID, DATE, Language 

您似乎只需要条件聚合。因为您只想计算匹配的布尔条件,所以请使用
COUNTIF()


您似乎只需要条件聚合。因为您只想计算匹配的布尔条件,所以请使用
COUNTIF()


字段名为Timestamp或Request\u Timestamp?在查询时编辑。我无意中删除了此帖子中的请求词检查答案below@swm . . . 如前所述,您的查询不能返回除
0
1
以外的任何值,因为子查询按id和日期删除了重复项。字段名为Timestamp或Request\u Timestamp?在查询时编辑。我无意中删除了此帖子中的请求词检查答案below@swm . . . 如前所述,您的查询不能返回除
0
1
以外的任何值,因为子查询按id和日期删除了重复项。我需要使用内部语句。因此,删除它将影响我的查询。我需要使用内部语句。所以删除它会影响我的查询