《SQL 进阶教程》 自链接排序

子查询所作的,是计算出价格比本身高的记录的条数并将其做为本身的位次排序

-- 自链接实现排序功能
SELECT P1.name,
P1.price,
(SELECT COUNT(P2.price)
FROM Products P2
WHERE P2.price > P1.price) + 1 AS rank_1
FROM Products P1
ORDER BY rank_1;查询


SELECT P1.name,
P1.price,
(SELECT COUNT(DISTINCT P2.price)
FROM Products P2
WHERE P2.price > P1.price) + 1 AS rank_1
FROM Products P1
ORDER BY rank_1;

-- 排序:使用自链接SELECT P1.name,MAX(P1.price) AS price,COUNT(P2.name) +1 AS rank_1FROM Products P1 LEFT OUTER JOIN Products P2ON P1.price < P2.priceGROUP BY P1.nameORDER BY rank_1;

相关文章
相关标签/搜索