我不知道如何编写mssql select来解决这个问题。
现有表格数据的示例:
Id GroupID Pass
___ ________ _____
1 1 1
2 1 0
3 2 1
4 2 0
5 2 0
6 3 1
7 3 1
我需要的是以下示例(如果未通过Group之一,则为0,否则为1):
GroupID Pass
________ _____
1 0
2 0
3 1
感谢您的帮助!
答案 0 :(得分:2)
使用MIN聚合
SELECT groupid, MIN(pass)
FROM tablename
GROUP BY groupid
答案 1 :(得分:1)
使用窗口功能row_number()
select GroupID,Pass from (
select *,
row_number() over(
partition by GroupID
order by Pass asc
) as [rn]
from [yourtable] as [t]
) as [t1]
where [rn] = 1;
答案 2 :(得分:0)
将 MIN
功能与 GROUP BY
一起使用。
查询
select [GroupID], min([Pass]) as [Pass]
from [your_table_name]
group by [GroupID]
order by [GroupID];
如果Pass
列的类型为BIT
,则需要强制转换为INT
。