SELECT语句返回Sybase表中每一行的计数

时间:2018-07-09 17:51:56

标签: sql sybase

在MongoDB / Node后端环境上工作时,我需要运行一些ETL以从以前的Sybase环境中提取数据。我对SQL的了解远不如对Mongo / Node的了解。

以下SELECT语句在count表中查找特定记录(数据行)的bl_serv_staffmember_xref

SELECT Count()
   FROM  "bl_serv_staffmember_xref"
   WHERE ( "bl_serv_staffmember_xref"."staff_member_id" = 129 ) AND 
         ( "bl_serve_staffmember_xref"."isactive" = 1 );

我需要做的是生成一个SELECT语句,该语句将为表中的每个行返回具有该计数的数据。我将如何去做?

我尝试过:

SELECT Count()
    FROM  "bl_serv_staffmember_xref"
   WHERE   ( "bl_serv_staffmember_xref"."staff_member_id" is NOT NULL ) AND 
         ( "bl_serv_staffmember_xref"."isactive" = 1 )   ;

但这只会返回一个总数计数:

Count()
1   2,452

不是我需要的每个 staff_member_id的计数。

这是我想要的结果:

staff_member_id     assignment_count
1                   23
2                   12
3                   16

1 个答案:

答案 0 :(得分:2)

您可以使用count(*)和分组依据,例如:

SELECT bl_serv_staffmember_xref.staff_member_id, Count(*)
FROM  "bl_serv_staffmember_xref"
WHERE ( "bl_serve_staffmember_xref"."isactive" = 1 )
GROUP BY bl_serv_staffmember_xref.staff_member_id