SQL Query查找具有公共字段的行数

时间:2010-11-09 19:34:28

标签: sql-server

在MS SQL Server 2008中。 如何计算具有特定字段的行数。 例如,假设我有下表。

UserAccount_ID Attribute_ID
786            11
797            10
797            5
797            6
797            11
555            11
1003           10
1003           5
1003           6
1003           11
633            11
2036           11
2087           10
2087           5
2087           6
291            11

要获取下表,我需要执行哪些查询。这将计算具有相同UserAccount_ID

的记录数
UserAccount_ID Count
    786            1
    797            4
    555            1
    1003            4
    633            1
    2036            1
    2087            3
    291              1

2 个答案:

答案 0 :(得分:4)

create table #YourTable (
    UserAccount_ID int,
    Attribute_ID int
)

insert into #YourTable
    (UserAccount_ID, Attribute_ID)
    select 786,11 union all
    select 797,10 union all
    select 797,5 union all
    select 797,6 union all
    select 797,11 union all
    select 555,11 union all
    select 1003,10 union all
    select 1003,5 union all
    select 1003,6 union all
    select 1003,11 union all
    select 633,11 union all
    select 2036,11 union all
    select 2087,10 union all
    select 2087,5 union all
    select 2087,6 union all
    select 291,11

select UserAccount_ID, count(*)
    from #YourTable
    group by UserAccount_ID

drop table #YourTable

答案 1 :(得分:1)

这是一个简单的聚合查询。 “每个UserAccount_ID分组COUNT”

SELECT
   UserAccount_ID, COUNT(*)
FROm
   myTable
GROUP BY
   UserAccount_ID