我有以下代码。
SELECT
TO_CHAR(a.created_at, 'YYYY.MM') AS Datum,
count(distinct(a.lead_demand_user_id)) AS Total_Leads
FROM
leads a
WHERE
date(a.created_at) BETWEEN '2017-06-01'
AND 'TODAY'
AND a.lead_delivery_time IS NOT NULL
AND a.lead_filler IN ('Android', 'iOS', 'MobileWeb', 'Web')
GROUP BY 1
上面的查询提供了每月的线索。
然后我有另一个查询,它只提供“租金”线索。
SELECT
TO_CHAR(a.created_at, 'YYYY.MM') AS Datum,
count(distinct(a.lead_demand_user_id)) AS Rent_Leads
FROM
leads a
WHERE
date(a.created_at) BETWEEN '2017-06-01'
AND 'TODAY'
AND a.lead_delivery_time IS NOT NULL
AND a.lead_filler IN ('Android', 'iOS', 'MobileWeb', 'Web')
AND a.service IN ('Leads::Rent')
GROUP BY 1
现在我可以创建两个单独的查询,但是我希望这两个值都通过一个查询以以下格式显示
月->总潜在客户->租赁潜在客户
我试过使用,连接,联合,子查询,但是没有得到想要的数据。
3条答案
按热度按时间pkmbmrz71#
这个怎么样:
epfja78i2#
我在这种情况下使用的一个选项是使用union:
使用您的第一个查询作为
把这个和你的第二个身份结合起来
这是可行的,但意味着您可以有效地读取主表两次,另一种方法是使用不计算空值的事实。我假设lead\u demand\u user\u id是一个数字。在oracle中,您可以使用
Decode(a.service,'Leads::Rent',1,null)
创建1或null。然后count (distinct(a.lead_demand_user_id)*Decode(a.service,'Leads::Rent',1,null)) as Rent_Leads
我不确定解码是否在其他sql中可用。希望这有帮助
斯蒂芬l。李
pb3skfrl3#
试试这个: