SQL 帮助 - 认为我需要一个子查询
SQL Help - Think I need a subquery
我写了下面的查询。
SELECT pro.[Id], COUNT(*) AS Count
FROM {Task} tsk
JOIN {profile} pro ON tsk.[ProfileId]=pro.[Id]
GROUP BY
pro.[Id]
HAVING
COUNT(*) > 1
这是我感兴趣的 returns 记录,但 returns 以下...
ID Count
12345 3
21254 2
25458 2
我现在需要更进一步,我想我需要使用我在另一个查询中编写的查询来获得我需要的东西。
我基本上需要查看计数中的基础数据,例如任务编号。所以根据上面的例子,最终结果看起来像这样。
ID Count
12345 123-345
12345 135-564
12345 136-985
21254 124-856
21254 135-854
25458 214-854
25458 365-850
我认为我需要一个子查询来执行此操作是否正确,我将如何去做?
谢谢
您可以使用 CTE、计数、过滤然后加入
WITH CTE AS (
SELECT pro.[Id], COUNT(*) AS Count
FROM {Task} tsk
JOIN {profile} pro ON tsk.[ProfileId]=pro.[Id]
GROUP BY
pro.[Id]
HAVING
COUNT(*) > 1
)
SELECT tsk.[Id], tsk.[ProfileId] FROM CTE
JOIN {Task} tsk ON CTE.[Id] = tsk.[ProfileId]
我写了下面的查询。
SELECT pro.[Id], COUNT(*) AS Count
FROM {Task} tsk
JOIN {profile} pro ON tsk.[ProfileId]=pro.[Id]
GROUP BY
pro.[Id]
HAVING
COUNT(*) > 1
这是我感兴趣的 returns 记录,但 returns 以下...
ID Count
12345 3
21254 2
25458 2
我现在需要更进一步,我想我需要使用我在另一个查询中编写的查询来获得我需要的东西。
我基本上需要查看计数中的基础数据,例如任务编号。所以根据上面的例子,最终结果看起来像这样。
ID Count
12345 123-345
12345 135-564
12345 136-985
21254 124-856
21254 135-854
25458 214-854
25458 365-850
我认为我需要一个子查询来执行此操作是否正确,我将如何去做?
谢谢
您可以使用 CTE、计数、过滤然后加入
WITH CTE AS (
SELECT pro.[Id], COUNT(*) AS Count
FROM {Task} tsk
JOIN {profile} pro ON tsk.[ProfileId]=pro.[Id]
GROUP BY
pro.[Id]
HAVING
COUNT(*) > 1
)
SELECT tsk.[Id], tsk.[ProfileId] FROM CTE
JOIN {Task} tsk ON CTE.[Id] = tsk.[ProfileId]