我正在尝试使用SQL构建报告,该报告将返回同一查询中完全独立的表中的值。
我创建了三个查询,这些查询可为我提供所需的每个输出,但无法将它们合并到一个查询中以生成单个报告。
-从一个期间及其当前状态中选择新订阅的数量-
SELECT
COUNT(
CASE WHEN created >= '2019-05-01'
AND created <= '2019-05-31' THEN
1
END) AS "number of new subscriptions",
COUNT(
CASE WHEN status = 'canceled'
AND created >= '2019-05-01'
AND created <= '2019-05-31' THEN
1
END) AS "count of canceled",
COUNT(
CASE WHEN status = 'active'
AND created >= '2019-05-01'
AND created <= '2019-05-31' THEN
1
END) AS "count of still active",
COUNT(
CASE WHEN status = 'trialing'
AND created >= '2019-05-01'
AND created <= '2019-05-31' THEN
1
END) AS "count of trialing",
COUNT(
CASE WHEN status = 'past_due'
AND created >= '2019-05-01'
AND created <= '2019-05-31' THEN
1
END) AS "count of past due"
FROM
subscriptions;
-退款总数-
SELECT
COUNT(
CASE WHEN received_at >= '2019-05-01'
AND received_at <= '2019-05-31'
AND refunded = TRUE THEN
1
END) AS "number of refunds"
FROM
charges;
-退款总额-
SELECT
ROUND((SUM(amount_refunded) / 100), 2) AS "Total Amount Refunded"
FROM
charges
WHERE
received_at >= '2019-05-01'
AND received_at <= '2019-05-31'
AND refunded = TRUE;
我希望输出是合并到一个输出中的所有单个查询的结果。
答案 0 :(得分:0)
在您的情况下,您可以交叉连接由SELECT
组成的派生表。
SELECT *
FROM (SELECT <rest of your first query here>) a
CROSS JOIN (SELECT <rest of your second query here>) b
CROSS JOIN (SELECT <rest of your third query here>) c;