我有一个select语句,按时间戳显示表中的一组总计,以及返回的年/半年。
但是我在添加一种显示记录计数总和的方法时遇到了麻烦。没有子查询我可以这样做吗?或者我是否必须在结果中添加一列并使其成为运行总计?
这是我到目前为止:
SELECT
SUM(x) Total
FROM
(
SELECT YEAR(TimeStamp) Year, 1 + MONTH(TimeStamp) / 7 Half, count(*) ct
FROM Table1
WHERE Row1 = 'Blah'
GROUP BY YEAR(TimeStamp), 1 + MONTH(TimeStamp) / 7
ORDER BY Year DESC, Half ASC
)
x
但它无法正确解析。我确定我的语法有问题,但我不知道如何在底部或任何地方显示总数,即使在结果中也是如此。
我看到问题Percent to total in PostgreSQL without subquery,但我不想扫描表两次,我还不了解窗口功能,但我试过,但无法在这里工作。
使用分组集:
SELECT YEAR(TimeStamp) Year, 1 + MONTH(TimeStamp) / 7 Half, count(*) ct
FROM Table1
WHERE Row1 = 'Blah'
GROUP BY GROUPING SETS (YEAR(TimeStamp), 1 + MONTH(TimeStamp) / 7, ())
ORDER BY Year DESC, Half ASC;