SQL中的"OVER"用法主要與開窗函式一起使用,以定義一個視窗,這個視窗是計算將要操作的行的集合。
開窗函式包括聚合函式和排名函式,如ROW_NUMBER、DENSE_RANK、RANK等。這些函式可以對數據集進行複雜的操作,如計算累計、排名或聚合值,而不需要使用GROUP BY子句。在"OVER"子句中,可以使用"PARTITION BY"來指定如何將數據分組,以及"ORDER BY"來指定在每個分組內如何對數據進行排序。
例如,可以使用"RANK() OVER (PARTITION BY column1 ORDER BY column2)"來在column1的每個唯一值內部,根據column2的值對數據進行排名。如果沒有使用"PARTITION BY",則會在整個結果集上進行排名。
另外,"OVER"子句還可以與聚合函式一起使用,如SUM、AVG、MAX、MIN等,以計算聚合值,同時保持數據在原始數據集中的排列順序。