窗口函数的基本语法为:
<窗口函数> OVER (
[PARTITION BY <列名>]
[ORDER BY <列名> [ASC|DESC]]
)
PARTITION BY:用于将数据按照指定的列进行分组。
ORDER BY:用于在分组内按照指定的列进行排序。
<窗口函数>:如 RANK()、DENSE_RANK()、ROW_NUMBER() 等。
SELECT shirt _name, shirt_type, shirt _price,RANK() OVER (PARTITION BY shirt_type) AS rankingFROM SHIRTABLE
RANK() 窗口函数缺少 ORDER BY 子句,无法按照 shirt_price 进行排序,所以该选项错误。
SELECT shirt _name, shirt_type, shirt _price,RANK (PARTITION BY shirt _type ORDER BY shirt _price) AS rankingFROM SHIRTABLE
RANK 函数使用错误,RANK 作为窗口函数,必须搭配 OVER 关键字使用,所以该选项错误。
SELECT shirt_name, shirt_type, shirt_price,RANK() OVER (PARTITION BY shirt _type ORDER BY shirt_price) AS rankingFROM SHIRTABLE
使用了正确的窗口函数语法,RANK() 搭配 OVER 关键字,通过 PARTITION BY shirt_type 按衬衫种类分组,再使用 ORDER BY shirt_price 按销售单价从低到高排序,所以该选项正确。
SELECT shirt _name, shirt_type, shirt _price,PARTITION BY shirt _type ORDER BY shirt _price AS rankingFROM SHIRTABLE
语法错误,PARTITION BY 和 ORDER BY 不能直接用于 SELECT 语句中,它们应该用于窗口函数的 OVER 子句中,所以该选项错误。