我在BQ中有一个表,看起来像这样:
<表类>
名称
城市
性别
日期
tbody><<tr>Alan 丹佛 M 2021-01-11 大卫亚特兰大 M 2021-01-11 达西纽约道明> 2021-01-11 表类>
您可以像下面这样通过与扁平日期数组交叉连接来复制一行。
WITH sample_table AS (
SELECT 'Alan' Name, 'Denver' city, 'M' Gender, DATE '2021-01-11' Date UNION ALL
SELECT 'David' Name, 'Atlanta' city, 'M' Gender, DATE '2021-01-11' Date UNION ALL
SELECT 'Darcy' Name, 'NY' city, 'F' Gender, DATE '2021-01-11' Date
)
SELECT t.* EXCEPT(date), date
FROM sample_table t, UNNEST(GENERATE_DATE_ARRAY(date, date + 2)) date;
--Query results
+-------+---------+--------+------------+
| Name | city | Gender | date |
+-------+---------+--------+------------+
| Alan | Denver | M | 2021-01-11 |
| Alan | Denver | M | 2021-01-12 |
| Alan | Denver | M | 2021-01-13 |
| David | Atlanta | M | 2021-01-11 |
| David | Atlanta | M | 2021-01-12 |
| David | Atlanta | M | 2021-01-13 |
| Darcy | NY | F | 2021-01-11 |
| Darcy | NY | F | 2021-01-12 |
| Darcy | NY | F | 2021-01-13 |
+-------+---------+--------+------------+