在不使用子查询或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。
需要注意的是,窗口函数在计算分组计数时,不会对结果进行分组,而是将计数结果添加到每一行中。如果你需要将结果按照分组进行聚合,你可以将这个查询作为子查询,并在外部查询中进行分组操作。