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