运行 使用子查询求和或累积频率
running sum or cumulative frequency using subquery
下面是根据datewise输出的累积频率,我想改成子查询。输出也是正确的,但我想通过使用子查询来完成。
输出
orderdate totalsum sum
1996-07-04 27 27
1996-07-05 49 76
1996-07-08 101 177
1996-07-09 105 282
1996-07-10 102 384
1996-07-11 57 441
您将使用 window 函数:
SELECT o.orderdate, SUM(od.quantity) AS totalsum,
SUM(SUM(od.quantity)) OVER (ORDER BY o.orderdate) as runningsum
FROM orders o JOIN
orderdetails od
ON o.orderid = od.orderid
GROUP BY o.orderdate;
这不仅写起来更简单,而且速度应该快得多 -- 而且没有 CTE 或子查询适合这个版本。
下面是根据datewise输出的累积频率,我想改成子查询。输出也是正确的,但我想通过使用子查询来完成。
输出
orderdate totalsum sum
1996-07-04 27 27
1996-07-05 49 76
1996-07-08 101 177
1996-07-09 105 282
1996-07-10 102 384
1996-07-11 57 441
您将使用 window 函数:
SELECT o.orderdate, SUM(od.quantity) AS totalsum,
SUM(SUM(od.quantity)) OVER (ORDER BY o.orderdate) as runningsum
FROM orders o JOIN
orderdetails od
ON o.orderid = od.orderid
GROUP BY o.orderdate;
这不仅写起来更简单,而且速度应该快得多 -- 而且没有 CTE 或子查询适合这个版本。