hom*_*mam 3 sql sql-server join group-by distinct
我想写一个这样的查询:
对于包含以下列的表:ColA ColB ColC,ColD
从ColD的表顺序中选择第一个(ColA,ColB,ColC,ColD)distinct(ColB,ColC)
该查询应该由ColD对表进行排序,然后通过ColB和ColC的组合对结果进行分组(它们可能具有不同的数据类型)并返回组中的第一行(包含表的所有列).
在MS SQL Server 2005中怎么可能?
听起来你想要'每组最大'.
一种方法是使用窗口函数ROW_NUMBER对每个组中的行进行编号,然后仅选择行号为1的行:
SELECT ColA, ColB, ColC, ColD
FROM
(
    SELECT
         ColA, ColB, ColC, ColD,
         ROW_NUMBER(PARTITION BY ColB, ColC ORDER BY ColD) AS rn
    FROM table1
) T1
WHERE rn = 1
| 归档时间: | 
 | 
| 查看次数: | 803 次 | 
| 最近记录: |