PostgreSQL:如何将同表中相同水果的不同市场信息分栏展示?
PostgreSQL 实现同一水果跨市场信息分栏展示
你可以通过**自连接(Self Join)**实现需求,在连接时分别指定两个市场的筛选条件,同时明确命名各列来区分不同市场的数据。完整SQL语句如下:
SELECT F1.Fruit, F1.Market AS Market_Sector3, F1.Rate AS Rate_Sector3, F1.Vendor AS Vendor_Sector3, F2.Market AS Market_Sector9, F2.Rate AS Rate_Sector9, F2.Vendor AS Vendor_Sector9 FROM FruitMarket F1 INNER JOIN FruitMarket F2 ON F1.Fruit = F2.Fruit WHERE F1.Market = 'Sector3' AND F2.Market = 'Sector9';
关键说明:
- 自连接时给表起别名
F1和F2,分别对应Sector3和Sector9的数据集 ON F1.Fruit = F2.Fruit确保关联的是同一水果的记录WHERE子句限定F1只取Sector3的数据,F2只取Sector9的数据- 通过
AS给列重命名,清晰区分两个市场的信息
如果需要保留仅在单个市场有数据的水果(比如某水果只在Sector3有记录),可以把INNER JOIN换成FULL OUTER JOIN,无匹配的列会自动显示为NULL。
内容的提问来源于stack exchange,提问作者stuckincode
相关产品推荐
相关产品推荐

