SQL查询添加计数信息

SQL查询添加计数信息,sql,count,Sql,Count,我有一个很好的查询: SELECT b.BG_BUG_ID as Defect FROM BUG b JOIN LINK l ON b.BG_BUG_ID = l.LN_BUG_ID JOIN TEST t ON l.LN_ENTITY_ID = t.TS_TEST_ID WHERE (b.BG_STATUS = 'Open') OR (b.BG_STATUS LIKE '%Re%') OR (b.BG_STATUS LIKE '%En%') OR (b.BG_STATUS = 'F

我有一个很好的查询:

SELECT
 b.BG_BUG_ID as Defect
FROM
 BUG b
JOIN LINK l ON b.BG_BUG_ID = l.LN_BUG_ID
JOIN TEST t ON l.LN_ENTITY_ID = t.TS_TEST_ID
WHERE
 (b.BG_STATUS = 'Open') OR
 (b.BG_STATUS LIKE '%Re%') OR
 (b.BG_STATUS LIKE '%En%') OR
 (b.BG_STATUS = 'Fixed') OR
 (b.BG_STATUS = 'New') AND
 (l.LN_ENTITY_TYPE = 'TEST')
ORDER BY b.BG_BUG_ID ASC
输出为:

DEFECT
------
2222
3333
4444
现在,我想为每个b.BG\u BUG\u ID添加一行t.TS\u TEST\u ID的总数作为缺陷,因此它应该如下所示:

DEFECT Number_of_test_ids
------ ------------------
2222    26
3333    14
4444    55
我不知道在哪里添加选择计数(?)以生成结果

SELECT
 b.BG_BUG_ID as Defect, count(distinct t.TS_TEST_ID) as Number_of_test_IDs
FROM
 BUG b
JOIN LINK l ON b.BG_BUG_ID = l.LN_BUG_ID
JOIN TEST t ON l.LN_ENTITY_ID = t.TS_TEST_ID
WHERE
 (b.BG_STATUS = 'Open') OR
 (b.BG_STATUS LIKE '%Re%') OR
 (b.BG_STATUS LIKE '%En%') OR
 (b.BG_STATUS = 'Fixed') OR
 (b.BG_STATUS = 'New') AND
 (l.LN_ENTITY_TYPE = 'TEST')
GROUP BY B.BG_BUG_ID
ORDER BY b.BG_BUG_ID ASC
您正在使用需要GROUPBY子句的聚合函数


如果要计算重复的t.ts_测试_ID,可能需要删除distinct;或者,如果您知道不存在重复项,或者您确实想将同一id计数两次。

b.BG\u BUG\u id作为缺陷,计数(*)…
,然后在下订单之前:add
GROUP by b.BG\u BUG\u id
,在这种情况下,重复项不存在。我错过了小组赛!多亏了你,我的头痛会好起来的:)