我正在通過 sqoop 從帶有一些連接表的視圖中獲取一些資料到 impala 中的外部表中。但是我看到一個表中的列乘以行。例如
id first_name surname step name value
1 ted kast 1 museum visitor
1 ted kast 1 shop buyer
1 ted kast 2 museum visitor
1 ted kast 2 shop buyer
但我想成為那樣的人
id first_name surname step name_value
1 ted kast 1 [(museum visitor), (shop buyer)]
1 ted kast 2 [(museum visitor), (shop buyer)]
我怎樣才能在黑斑羚中實作這一目標?
uj5u.com熱心網友回復:
我們可以在這里使用聚合以及GROUP_CONCAT:
SELECT
id,
first_name,
surname,
step,
CONCAT('[', GROUP_CONCAT(CONCAT('(', CONCAT_WS(' ', name, value), ')'), ', '), ']') AS name_value
FROM yourTable
GROUP BY
id,
first_name,
surname,
step
ORDER BY id;
這是 MySQL 的演示,其語法與 Impala 幾乎相同。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/439853.html
上一篇:跨多個資料庫運行SQL
