s******c 发帖数: 87 | 1 Mysql 提取组间最大行,code如下。但是在执行的时候比较慢,performance不好,有什
么优化的好方法吗?谢谢
另外SQL server可以用row_num()over(position.... ) 这个方法就不会存在
performance不好的问题吧?没用这个测试够所以想请教知道的人
SELECT article, dealer, price
FROM shop s1
WHERE price=(SELECT MAX(s2.price)
FROM shop s2
WHERE s1.article = s2.article); |
s**********o 发帖数: 14359 | 2 你这个CO-RELATED JOIN写的不对吧,自己JOIN自己啊,JOIN什么啊,
没看到GROUP BY啊,有点SELF BLOATED的感觉 |
s******c 发帖数: 87 | 3 这个没有错的。也不需要group by
这个是网络上的一个解释,我用这个方法写code,发现执行很慢 |
n******1 发帖数: 3756 | 4 为什么要这样写
和max group by 有什么区别
【在 s******c 的大作中提到】 : 这个没有错的。也不需要group by : 这个是网络上的一个解释,我用这个方法写code,发现执行很慢
|
d****n 发帖数: 12461 | 5 没有来龙去脉啊。article是不是唯一,price到底怎么区分大小...
【在 s******c 的大作中提到】 : Mysql 提取组间最大行,code如下。但是在执行的时候比较慢,performance不好,有什 : 么优化的好方法吗?谢谢 : 另外SQL server可以用row_num()over(position.... ) 这个方法就不会存在 : performance不好的问题吧?没用这个测试够所以想请教知道的人 : SELECT article, dealer, price : FROM shop s1 : WHERE price=(SELECT MAX(s2.price) : FROM shop s2 : WHERE s1.article = s2.article);
|
y*****g 发帖数: 677 | 6 你在 PRICE 上加上 INDEX, 应该有帮助。 |
i*****w 发帖数: 75 | 7 Try this:
SELECT a.article, a.dealer, b.price
FROM shop s1
INNER JOIN
(
SELECT article, MAX(PRICE) price FROM shop GROUP BY article
) b
ON s1.article = b.article
【在 s******c 的大作中提到】 : Mysql 提取组间最大行,code如下。但是在执行的时候比较慢,performance不好,有什 : 么优化的好方法吗?谢谢 : 另外SQL server可以用row_num()over(position.... ) 这个方法就不会存在 : performance不好的问题吧?没用这个测试够所以想请教知道的人 : SELECT article, dealer, price : FROM shop s1 : WHERE price=(SELECT MAX(s2.price) : FROM shop s2 : WHERE s1.article = s2.article);
|