SELECT MID, COUNT(*)
FROM [Main].[Product].[Report]
GROUP BY MID
HAVING COUNT(*) >= 2
这给了我:
312391933 2
231313111 2
但是我想:
312391933 2 2020/02/01 true
312391933 2 2019/02/02 false
231313111 2 2020/01/01 true
231313111 2 2019/01/01 false
有办法做到这一点吗?
我尝试将表连接到自身并使用子查询,但似乎没有任何作用。所有的行都来自同一个表。
可以使用窗口函数。他们可以成为你的救星,非常值得你花时间和他们相处。
with cte as(
Select MID
,Cnt = sum(1) over (partition by MID)
,SomeDateCol
,SomeTrueFalseCol
From YourTable
)
Select *
From cte
Where Cnt>1