我有一张桌子:
CODIGO NOME VIEW EDIT
1 TESTE 1 1
1 TESTE 0 1
3 TESTE3 0 0
3 TESTE3 1 0
5 TESTE5 1 0
5 TESTE5 0 1
我是否构建了一个查询以在SQL SERVER中获得以下结果?
结果:
CODIGO NOME VIEW EDIT
1 TESTE 1 1
3 TESTE3 1 0
5 TESTE5 1 1
答案 0 :(得分:0)
使用MAX():
SELECT CODIGO, NOME, MAX(VIEW) AS VIEW, MAX(EDIT) AS EDIT
FROM TABLE
GROUP BY CODIGO, NOME
答案 1 :(得分:0)
看起来你想要CODIGO和NOME分组,同时获得最高价值的VIEW和EDIT。我试试这个:
SELECT CODIGO, NOME, MAX(VIEW) AS VIEW, MAX(EDIT) AS EDIT
FROM TABLE
GROUP BY CODIGO, NOME
ORDER BY CODIGO, NOME
答案 2 :(得分:0)
以下查询将提供所需的输出: -
select distinct CODIGO,NOME,MAX(cast([VIEW] as int)) OVER ( Partition by CODIGO,NOME) [VIEW],MAX(cast(EDIT as int)) OVER ( Partition by CODIGO,NOME) EDIT from table_name
输出: -
CODIGO NOME VIEW EDIT
1 TESTE 1 1
3 TESTE3 1 0
5 TESTE5 1 1
注意:已经为VIEW和EDIT列进行了转换,因为如果你使用它们的位数据类型,那么MAX函数将不支持它。
答案 3 :(得分:-4)
您可以选择不同的。阅读不同的查询。
实施例
select distinct codigo from dual;