【发布时间】:2020-11-13 18:24:20
【问题描述】:
我有一个名为 bookings 的表格,其中包含以下列:
开始时间(时间戳)
插槽(整数)
我想总结按天分组的预订时段,然后计算与前一天相比的变化百分比。
这个查询几乎可以做到这一点,但由于某种原因,百分比不正确:
SELECT starttime::date AS "Dates", SUM(slots) AS "Slots",
(SUM(Slots)/LAG(SUM(Slots)) OVER (ORDER BY starttime::date))::NUMERIC(3,2) AS "Change (%)"
FROM cd.bookings
GROUP BY 1;
这是输出:
DATES Slots Change(%)
"2012-07-03" 10 NULL
"2012-07-04" 22 2.00
"2012-07-05" 19 0.00
"2012-07-06" 23 1.00
"2012-07-07" 42 1.00
"2012-07-08" 36 0.00
"2012-07-09" 43 1.00
我做错了什么?
【问题讨论】:
-
整数除法。将总和转换为
double precision之类的数据类型。
标签: sql postgresql group-by