假设表有数据
表A
字段1 字段2 字段3
001 ABC YY
002 BCD PP
003 CDD YY
004 ADDD KK
005 ADDaD KK
如何统计字段3相同数据的个数,SQL查询后的效果应该是
字段1 字段2 字段3
001 ABC 2
002 BCD 1
003 CDD 2
004 ADDD 2
005 ADDaD 2
有高手会么
表A
字段1 字段2 字段3
001 ABC YY
002 BCD PP
003 CDD YY
004 ADDD KK
005 ADDaD KK
如何统计字段3相同数据的个数,SQL查询后的效果应该是
字段1 字段2 字段3
001 ABC 2
002 BCD 1
003 CDD 2
004 ADDD 2
005 ADDaD 2
有高手会么
解决方案 »
- 求一个一对多关系的查询。
- 如何查询出定义表时列的注释?
- 关于SQL时间格式的转换,高手请进
- 如何替换数据库里的指定文本?
- 字段为DateTime类型,里面存储了日期和时间。现在我只要计算时间是3:30-5:00之间的数据,该怎么写?
- 如何用SQL语名使查询结果的字段名称显示为Table.Field
- 选择字段的SQL语句问题!!不要显示某个字段.
- 为什么SQL Server2000在Windows2003上装不上?
- 有谁用过Microsoft SQL Desktop Engine吗?如果我的机器只安装该引擎,如果命令行启动服务器呢?有没有高手知道?
- ERP的SQL SERVER 2000 的数据库全面解决方案?
- 关于SQL建立视图时的多表查询
- 有关SQL循环执行的问题
if object_id('tempdb.dbo.#') is not null drop table #
create table #(字段1 varchar(8), 字段2 varchar(8), 字段3 varchar(8))
insert into #
select '001', 'ABC', 'YY' union all
select '002', 'BCD', 'PP' union all
select '003', 'CDD', 'YY' union all
select '004', 'ADDD', 'KK' union all
select '005', 'ADDaD', 'KK'select *, count(*)over(partition by 字段3)相同个数 from #/*
字段1 字段2 字段3 相同个数
-------- -------- -------- -----------
004 ADDD KK 2
005 ADDaD KK 2
002 BCD PP 1
003 CDD YY 2
001 ABC YY 2
*/
insert into a values('001', 'ABC' ,'YY')
insert into a values('002', 'BCD' ,'PP')
insert into a values('003', 'CDD' ,'YY')
insert into a values('004', 'ADDD' ,'KK')
insert into a values('005', 'ADDaD' ,'KK')
goselect 字段1, 字段2,字段3=(select count(1) from a where 字段3 = t.字段3) from a tdrop table a/*
字段1 字段2 字段3
---------- ---------- -----------
001 ABC 2
002 BCD 1
003 CDD 2
004 ADDD 2
005 ADDaD 2(所影响的行数为 5 行)
*/
select 字段1, 字段2,字段3=(select count(1) from a where 字段3 = t.字段3)
from tb --