sqlserver多列多行字段求最大值
时间: 2024-10-19 07:08:06 浏览: 20
在SQL Server中,如果你想要在一个表中对多列的多行数据求最大值,你可以使用`MAX()`函数结合`CASE`表达式或者嵌套的聚合函数`MAX() OVER()`。这里有两个例子:
1. **CASE表达式**:
```sql
SELECT
MAX(CASE WHEN column1 = max_value THEN column1 ELSE NULL END) AS MaxColumn1,
MAX(CASE WHEN column2 = max_value THEN column2 ELSE NULL END) AS MaxColumn2
FROM
your_table
WHERE
some_condition -- 如果有特定条件,可以添加在这里
GROUP BY
some_grouping_column; -- 如果需要按组分组,指定分组列
```
2. **窗口函数 MAX() OVER()**:
```sql
SELECT
column1,
column2,
MAX(column1) OVER (PARTITION BY some_grouping_column) AS MaxColumn1,
MAX(column2) OVER (PARTITION BY some_grouping_column) AS MaxColumn2
FROM
your_table
WHERE
some_condition;
```
这里,`OVER(PARTITION BY ...)`用于指定每个分区内的最大值。
阅读全文