我有下表
| 项目|面积|数量|
| - -|- -|- -|
| 项目1|一种|10个|
| 项目1| B|十七岁|
| 项目2| B|二十个|
| 项目3|一种|10个|
| 项目2| C语言|八个|
我希望有一个结果在SQL如下(一个独特的项目和一个独特的领域):
| 项目|A区|区域B| C区|
| - -|- -|- -|- -|
| 项目1| 10个|十七岁|第0页|
| 项目2|第0页|二十个|八个|
| 项目3| 10个|第0页|第0页|
我确实有这个查询,它没有给我什么正在寻找,如果该地区已被改变或增加,也其为2列表,而不是3列:
select
item,
max(case when seqnum = 1 then area end) as area_1,
max(case when seqnum = 2 then area end) as area_2,
max(case when seqnum = 3 then area end) as area_3
from (
select A.*,
row_number() over (partition by item order by area) as seqnum
from A
) A
group by item;
期待您的帮助。
1条答案
按热度按时间n53p2ov01#
max()
中的每个单独值。对查询的另一个修正是采用
qty
,而不是area
(其值已被过滤)的最大值。