我有下表
项目 | 面积 | 数量|
---|---|---|
项目1 | ||
第1项 | b | 17 |
第2项 | b | 20 |
第3项 | a | 10 |
第2项 | c | 8 |
如果有一个固定的区域列表,则不需要窗口函数;可以显式筛选max()
中的每个单独值。
查询的另一个修复方法是采用qty
的最大值,而不是area
(其值已被过滤(。
select item,
coalesce(max(case when area = 'a' then qty end), 0) as area_a,
coalesce(max(case when area = 'b' then qty end), 0) as area_b,
coalesce(max(case when area = 'c' then qty end), 0) as area_c
from mytable
group by item