【发布时间】:2013-11-26 18:40:42
【问题描述】:
我想显示销售了多少辆汽车以及它们的颜色。
我需要显示表中的所有汽车品牌:汽车。售出的汽车总数(见表:car_sales)以及这些汽车中有多少是红色或蓝色的。
应该是这样的:
Car | totalQuantity | Quantity red | Quantity blue
------------------------------------------------------------
BMW | 3 | 1 | 2
Mercedes | 1 | 1 | 0
Audi | 2 | 2 | 0
Chevrolet | 0 | 0 | 0
Nissan | 1 | 0 | 1
Renault | 0 | 0 | 0
Peugeot | 0 | 0 | 0
这是我的两张桌子:
桌子:汽车
Car_id | Car_brand
------------------------
2356 | BMW
2359 | Mercedes
2358 | Audi
2544 | Chevrolet
2152 | Nissan
2245 | Renault
2253 | Peugeot
表:car_sales
sales_id | Car_brand | color | car_id | sales_date
---------------------------------------------------------------
45654556 | BMW | red | 2356 | 03.02.2009
63654552 | Mercedes | red | ... | ...
45654565 | BMW | blue | ... | ...
41456921 | Audi | red | |
36636545 | Nissan | blue | |
45654565 | BMW | blue | |
41456921 | Audi | red | |
我希望你能帮助我。 祝你有美好的一天。
【问题讨论】:
-
你很好地解释了你想做什么;唯一缺少的是您为尝试自己编写的 SQL。请edit 并至少付出一些努力来解决问题。
-
因为
PIVOT是 11g 及更高版本的功能,您能否指定您的 Oracle 版本? -
请注意:您的表格设计是多余的。通常您会希望去掉 car_sales 中的 car_brand 列,因为该信息在表 cars 中可用。 (在数据仓库系统中,您可能希望摆脱表车,因此仍然存在冗余但无需连接表即可轻松访问。)