替换group by 的写法
时间: 2023-08-27 20:05:02 浏览: 154
用Where子句替换HAVING子句-oracle性能优化
可以使用窗口函数来替代 group by,具体的写法如下:
```
SELECT DISTINCT column1, column2, ... , columnN,
SUM(columnX) OVER (PARTITION BY column1, column2, ... , columnN) as sumX
FROM table_name
```
其中,`column1` 到 `columnN` 是需要分组的列,`columnX` 是需要聚合的列,`sumX` 是聚合结果。
这种写法的优势是可以避免使用 group by 带来的性能问题,同时语法也更加简洁。但是需要注意的是,窗口函数的结果需要使用 DISTINCT 关键字去重。
阅读全文