Google bigquery BigQuery在分组id时获取最新记录,按日期排序
我已经将一个票务系统连接到BigQuery,现在我想输出一个报告 我遇到的问题是,票子上的每个回复都被添加到新的一行。大概是这样的:Google bigquery BigQuery在分组id时获取最新记录,按日期排序,google-bigquery,Google Bigquery,我已经将一个票务系统连接到BigQuery,现在我想输出一个报告 我遇到的问题是,票子上的每个回复都被添加到新的一行。大概是这样的: ticket_id | subject | status | date 1 | help | open | 2019-08-01 1 | help | closed | 2019-08-02 2 | problem | open | 2019-08-01 2 |
ticket_id | subject | status | date
1 | help | open | 2019-08-01
1 | help | closed | 2019-08-02
2 | problem | open | 2019-08-01
2 | problem | open | 2019-08-02
2 | problem | open | 2019-08-03
2 | problem | open | 2019-08-04
期望输出:
ticket_id | subject | status | date
1 | help | closed | 2019-08-02
2 | problem | open | 2019-08-04
我使用什么查询来获得所需的输出?
我试过这样的东西
SELECT * FROM [table_name]
ORDER BY date
GROUP BY ticket_id
但我得到了一个错误:
选择列表表达式引用的列状态既不是
在[1:12]分组或聚合
下面是BigQuery标准SQL
#standardSQL
SELECT AS VALUE ARRAY_AGG(t ORDER BY `date` DESC LIMIT 1)[OFFSET(0)]
FROM `project.dataset.table` t
GROUP BY ticket_id
您可以使用问题中的样本数据测试、播放上述内容,如下例所示
#standardSQL
WITH `project.dataset.table` AS (
SELECT 1 ticket_id, 'help' subject, 'open' status, DATE '2019-08-01' `date` UNION ALL
SELECT 1, 'help', 'closed', '2019-08-02' UNION ALL
SELECT 2, 'problem', 'open', '2019-08-01' UNION ALL
SELECT 2, 'problem', 'open', '2019-08-02' UNION ALL
SELECT 2, 'problem', 'open', '2019-08-03' UNION ALL
SELECT 2, 'problem', 'open', '2019-08-04'
)
SELECT AS VALUE ARRAY_AGG(t ORDER BY `date` DESC LIMIT 1)[OFFSET(0)]
FROM `project.dataset.table` t
GROUP BY ticket_id
结果
Row ticket_id subject status date
1 1 help closed 2019-08-02
2 2 problem open 2019-08-04