从已连接的表

时间:2016-04-14 09:30:34

标签: sql postgresql amazon-redshift

假设我有一个表cars,看起来像这样:

cars_ id | offer_id | make_name | model_slug
   1          2         Audi         Q1
   2          2         Audi         Q2
   3          2         Audi         Q3
   4          2         Audi         Q2
   5          2         Audi         Q1

offers表格

offer_id | dealership_id | make_name
    1           2             Audi         
    2           2             Audi         
    3           2             Audi         
    4           2             Audi         
    5           2             Audi        

我正在尝试获得两个指标:按model分组的汽车总数和特定经销商_id的优惠数量,如下所示:

Model| total cars| offers for dealership = 2
  Q1        2             0
  Q2        2             1
  Q3        1             0

要获得汽车总数非常简单:

select C.model_slug, 
        count(*),
    from quotes_site.cars C
        left join quotes_site.offers O
        on C.offer_id = O.id
    where C.make_name ilike 'Audi'
        group by C.model_slug

但是我假设有一种方法可以将特定经销商_id的优惠计数添加到同一张桌子

非常感谢任何建议!

1 个答案:

答案 0 :(得分:0)

 select 
   C.model_slug, 
   count(*),
   sum(decode(o.dealership_id,2, 1,0)) sum_dealership_2
 from
   quotes_site.cars c,
   quotes_site.offers o
 where
   c.offer_id = o.offer_id
 group by
   C.model_slug

在你的例子中,offer表的ID不是offer_id,但在表格描述中U show offer_id,所以我不知道哪一个是正确的,所以我使用了offer_id。