I've hit a bit of a dead end with this BigQuery/SQL question. After ~1 hour of Googling I still haven't figured it out, so I figured I'd ask here.
I have a BigQuery table (mycompany.engagement.product_orders) of customer order data. Every row in the table describes an order placed by a customer and it looks something like this:
Row | Product | Timestamp | Type | CustomerName |
---|---|---|---|---|
1 | Apple | 2021-08-19 11:41:08.874 UTC | Gala | Philippe Kahn |
2 | Orange | 2021-08-19 11:41:12.874 UTC | Navel | Grace Hopper |
3 | Pear | 2021-08-19 11:41:24.874 UTC | Bosc | Vladimir Nabokov |
4 | Apple | 2021-08-19 11:41:47.874 UTC | Melba | Sylvia Plath |
5 | Pear | 2021-08-19 11:41:55.874 UTC | Anjou | Alan Turing |
6 | Pear | 2021-08-19 11:42:10.874 UTC | Asian | Sylvia Plath |
7 | Apple | 2021-08-19 11:42:11.874 UTC | Fuji | Vladimir Nabokov |
8 | Orange | 2021-08-19 11:42:37.874 UTC | Blood | Ada Lovelace |
9 | Orange | 2021-08-19 11:42:49.874 UTC | Cara | Grace Hopper |
10 | Apple | 2021-08-19 11:42:51.874 UTC | Melba | Alan Turing |
I would like to formulate a SQL query that will count the products ordered by customers in 1 minute intervals (or any interval really) to return a table that looks (something) like this:
Row | Product | Timestamp | Count |
---|---|---|---|
1 | Apple | 2021-08-19 11:41:00.000 UTC | 2 |
2 | Orange | 2021-08-19 11:41:00.000 UTC | 1 |
3 | Pear | 2021-08-19 11:41:00.000 UTC | 2 |
4 | Pear | 2021-08-19 11:42:00.000 UTC | 1 |
5 | Apple | 2021-08-19 11:42:00.000 UTC | 2 |
6 | Orange | 2021-08-19 11:42:00.000 UTC | 2 |
Some notes: