标签:
杂谈 |
参考:
用 Uncorrelated subquery:
SELECT s1.article, dealer, s1.price
FROM shop s1
JOIN (
SELECT article, MAX(price) AS price
FROM shop
GROUP BY article) AS s2
ON s1.article = s2.article AND s1.price = s2.price;
解释:分两步
-
第一步:取 MAX 和 GROUP BY 的字段的记录
-
第二步:取上述记录所在的行
用 LEFT JOIN:
SELECT s1.article, s1.dealer, s1.price
FROM shop s1
LEFT JOIN shop s2 ON s1.article = s2.article AND s1.price < s2.price
WHERE s2.article IS NULL;
解释:s1.price 为最大值时,s2.article 就已经是 NULL 了。