【发布时间】:2019-04-30 10:05:55
【问题描述】:
我有一个表格,其中包含“用户名”、“品牌”和“价值”作为列。每个经理和他们的同事最多负责 3 个品牌,这些品牌可以从经理换到经理。现在用户名、品牌和它们的值是如下的行格式。
User Name Brand Name Value
User 1 Puma 10
User 1 Adidas 20
User 1 Nike 30
User 2 Puma 40
User 2 Adidas 50
User 2 Nike 60
User 3 Puma 70
User 3 Adidas 80
User 3 Nike 90
使用我在下面实现的“案例”,但问题是,这些品牌可以根据经理而改变。例子。经理 -1 可以负责 Puma、耐克、阿迪达斯,但经理 -2 可以负责 X、Y、Z 品牌。
User Name Brand -1 Brand -2 Brand -3
User 1 10 20 30
User 2 40 50 60
User 3 70 80 90
我想要的状态是以列格式获取品牌名称,如下所示。
对于经理 - 1
User Name PUMA ADIDAS NIKE
User 1 10 20 30
User 2 40 50 60
User 3 70 80 90
对于经理 -2
User Name X Y Z
User 1 10 20 30
User 2 40 50 60
User 3 70 80 90
我希望将实际的 3 个品牌名称作为动态列,而不是 Brand-1、Brand-2、Brand -3。我可以硬编码这些品牌名称,但正如我所说,它们可能因经理而异,但每次只有一位经理。
【问题讨论】:
-
您是如何存储经理信息的?
-
我正在使用 Postgres SQL。
-
@ch2019 我的报告将经理 ID 作为参数。所以一次一位经理(一次 3 个品牌)。
标签: sql postgresql pivot case