我可以在没有子查询的情况下为结果添加总计吗?

问题描述 投票:0回答:1

我有一个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,但我不想扫描表两次,我还不了解窗口功能,但我试过,但无法在这里工作。

sql sql-server select
1个回答
2
投票

使用分组集:

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;
© www.soinside.com 2019 - 2024. All rights reserved.