[英]MySQL First GROUP BY, then ORDER
我一直在搜尋,但無法提出適當的解決方案來對我的表“商店”進行排序。
它是這樣的:
Product Price
---------------------------------
Site 1 35
Site 2 50
Site 3 15
Site 1 30
Site 2 5
現在我需要它看起來像這樣:
Product Price
---------------------------------
Site 2 50
Site 2 5
Site 1 35
Site 1 30
Site 3 15
該表格應從最高價格開始排序,然后按產品分組。 我嘗試了一百萬個不同的查詢,而最接近的查詢是:
SELECT m.* FROM shop m
INNER JOIN
(SELECT product, MAX(price) AS maxprice FROM shop GROUP BY product ORDER BY maxprice ASC) s
ON m.product = s.product
ORDER BY s.maxprice DESC
該查詢可以完成工作,但會以錯誤的方式對組中的價格進行排序。
Product Price
---------------------------------
Site 2 5
Site 2 50
Site 1 30
Site 1 35
Site 3 15
我究竟做錯了什么? 非常感謝幫助!
最好,謝謝一百萬!
Select x.product, x.price from
(Select product, max(price) as mprice from shop
group by product) as tbl inner join shop x on tbl.product = x.product
order by tbl.mprice desc, x.Price desc
我還注意到您創建的小提琴會節省我一些時間,但這是更新小提琴
SELECT s.product, s.Price
from (Select product, max(price) as mprice
from shop group by product) as tbl
inner join shop s on s.product = tbl.product
order by tbl.mprice desc, s.price desc
您有兩種排序方式,因此您需要在ORDER BY中對兩者進行描述
ORDER BY s.maxprice DESC, m.price DESC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.