Мне нужен biqQuery для следующего вывода. EmpNo Имя Месяц Зарплата 1 Алекс Ян 2000 г. 1 Алекс Фев 3000 1 Алекс Мар 3500 2 Тереза Ян 1000 г. 2 Тереза Фев 2000 2 Тереза Фев 3000
Ниже для BigQuery Standard SQL
#standardSQL
SELECT EmpNo, Age, Name, s.*
FROM `project.dataset.your_table` t, UNNEST(Salary) s
Вы можете протестировать / поиграть с ним, используя фиктивные данные из вашего вопроса, как показано ниже
#standardSQL
WITH `project.dataset.your_table` AS (
SELECT 1 EmpNo, 25 Age, 'Alex' Name,
[STRUCT<Month STRING, Amt INT64>('Jan', 2000), ('Feb', 3000), ('Mar', 3500)] Salary UNION ALL
SELECT 2, 26, 'Teresa',
[STRUCT<Month STRING, Amt INT64>('Jan', 1000), ('Feb', 2000), ('Mar', 3000)]
)
SELECT EmpNo, Age, Name, s.*
FROM `project.dataset.your_table` t, UNNEST(Salary) s
и результат
Row EmpNo Age Name Month Amt
1 1 25 Alex Jan 2000
2 1 25 Alex Feb 3000
3 1 25 Alex Mar 3500
4 2 26 Teresa Jan 1000
5 2 26 Teresa Feb 2000
6 2 26 Teresa Mar 3000
Мне нужны детали empno, имя и сумма зарплаты
Если вам нужна сумма зарплаты, вы можете использовать приведенный ниже пример
#standardSQL
WITH `project.dataset.your_table` AS (
SELECT 1 EmpNo, 25 Age, 'Alex' Name,
[STRUCT<Month STRING, Amt INT64>('Jan', 2000), ('Feb', 3000), ('Mar', 3500)] Salary UNION ALL
SELECT 2, 26, 'Teresa',
[STRUCT<Month STRING, Amt INT64>('Jan', 1000), ('Feb', 2000), ('Mar', 3000)]
)
SELECT EmpNo, Age, Name,
(SELECT SUM(Amt) FROM UNNEST(Salary)) Total
FROM `project.dataset.your_table`
и результат
Row EmpNo Age Name Total
1 1 25 Alex 8500
2 2 26 Teresa 6000