如何在Looker中将多行数据合并为同一行(保留booking_id)
在Looker中实现多行数据合并到同一行的方法
完全可行,给你两种适配SSMS背景团队的实现方式:
方法一:用Looker原生透视(Pivot)功能
不用写复杂SQL就能快速实现:
- 在Looker的Explore界面,把
booking_id、amount、type字段添加到查询面板 - 找到
type字段,点击下拉菜单选择Pivot选项 - Looker会自动将不同的
type值转为独立列,对应amount值会填充到匹配列,booking_id始终保留在第一列 - 可以直接添加筛选条件(比如指定
booking_id = 'Value'),还能调整列名、数据格式
方法二:用条件聚合SQL(和SSMS行转列逻辑一致)
如果更习惯用SQL控制逻辑,在Looker里可以用自定义SQL实现:
SELECT booking_id, SUM(CASE WHEN type = 'TypeA' THEN amount ELSE 0 END) AS amount_type_a, SUM(CASE WHEN type = 'TypeB' THEN amount ELSE 0 END) AS amount_type_b, SUM(CASE WHEN type = 'TypeC' THEN amount ELSE 0 END) AS amount_type_c, SUM(CASE WHEN type = 'TypeD' THEN amount ELSE 0 END) AS amount_type_d FROM bookings WHERE booking_id = 'Value' GROUP BY booking_id
- 把
TypeA到TypeD替换成实际业务中的type值 - 这种写法和SSMS里的行转列逻辑完全一致,团队成员能快速上手
两种方式各有优势:透视功能适合快速做交互分析,条件聚合适合需要精确控制SQL逻辑的场景。
内容的提问来源于stack exchange,提问作者Chad Fender
相关产品推荐
相关产品推荐

