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或其他。