在不使用子查询或CTE的情况下,可以使用窗口函数来进行两个分组的计数。下面是一个示例代码:
SELECT column1, column2,
COUNT(*) OVER(PARTITION BY column1) AS count1,
COUNT(*) OVER(PARTITION BY column2) AS count2
FROM your_table;
在上面的代码中,your_table
是你的表名,column1
和column2
是你想要进行分组计数的两个列。
这个查询使用了窗口函数COUNT(*) OVER(PARTITION BY column1)
来对column1
进行分组计数,并将结果命名为count1
。同样地,COUNT(*) OVER(PARTITION BY column2)
对column2
进行分组计数,并将结果命名为count2
。
执行这个查询,你将会得到一个结果集,其中每一行包含了column1
和column2
的值,以及对应的分组计数count1
和count2
。
需要注意的是,窗口函数在计算分组计数时,不会对结果进行分组,而是将计数结果添加到每一行中。如果你需要将结果按照分组进行聚合,你可以将这个查询作为子查询,并在外部查询中进行分组操作。