Sql 计算查询结果的行数

Sql 计算查询结果的行数,sql,Sql,要统计聚合查询结果中的记录。如果我的原始数据如下所示: ======================== Field 1 Field 2 Field 3 ------------------------ aaa ccc 10 aaa ccc 10 aaa ddd 10 aaa ddd 10 bbb ddd 10 bbb ddd 10 bbb eee 10 ====================================================== Field 1 Field 2

要统计聚合查询结果中的记录。如果我的原始数据如下所示:

========================
Field 1 Field 2 Field 3
------------------------
aaa ccc 10
aaa ccc 10
aaa ddd 10
aaa ddd 10
bbb ddd 10
bbb ddd 10
bbb eee 10
======================================================
Field 1 Field 2 Field 3 Count Field 1   Count Field 2
------------------------------------------------------
aaa ccc 20  2   1
aaa ddd 20  2   2
bbb ddd 20  2   2
ddd eee 10  2   1
我按字段1、字段2分组,并对字段3求和 所以结果看起来:

========================
Field 1 Field 2 Field 3
------------------------
aaa ccc 20
aaa ddd 20
bbb ddd 20
ddd eee 10
我想计算每个值在字段1和字段2中出现的次数

因此,结果如下所示:

========================
Field 1 Field 2 Field 3
------------------------
aaa ccc 10
aaa ccc 10
aaa ddd 10
aaa ddd 10
bbb ddd 10
bbb ddd 10
bbb eee 10
======================================================
Field 1 Field 2 Field 3 Count Field 1   Count Field 2
------------------------------------------------------
aaa ccc 20  2   1
aaa ddd 20  2   2
bbb ddd 20  2   2
ddd eee 10  2   1
我尝试使用CONND函数,但它计算原始表,所以显示原始表的结果,我得到结果:

======================================================
Field 1 Field 2 Field 3 Count Field 1   Count Field 2
------------------------------------------------------
aaa ccc 20  4   2
aaa ddd 20  4   4
bbb ddd 20  3   4
ddd eee 10  3   1

大多数数据库支持窗口/分析功能。这些可以组合在聚合中,以实现您想要的功能:

select field1, field2, sum(field3) as sumfield3,
       count(*) over (partition by field1) as numField1,
       count(*) over (partition by field2) as numField2
from table t
group by tield1, field2;

您愿意与我们分享您的SQL语句吗?您需要它用于什么平台?MySQL、MSSQL、Oracle或其他。