[英]Get record with Max value from SELECT query
我正在嘗試get max value
查詢中列的get max value
,但找不到任何解決方案。 我的查詢是
SELECT pz.id,
sz.Price + cr.AddedCost AS price
FROM piz pz, crust cr, size sz
WHERE
pz.SizeID = sz.id AND
pz.CrustID = tp.id
然后我收到一些如下記錄
ID price
-----------
1 95000.0
6 160000.0
10 150000.0
3 137500.0
5 122500.0
4 195000.0
2 195000.0
7 130000.0
8 205000.0
9 130000.0
11 205000.0
我想獲取價格max value
的record
,這些record
是:
ID price
------------
8 205000.0
11 205000.0
我在MySQL服務器上使用Navicat
更新:我確實嘗試使用:
SELECT pz.id, MAX(sz.Price + cr.AddedCost) AS price ....
但是它沒有用,因為返回的ID是錯誤的
使用Max函數:)從...中選擇MAX(column)
當您這樣做時會發生什么。
將所有舊樣式的逗號分隔聯接更改為內部聯接,以提高可讀性。
SELECT pz.id,
sz.Price + cr.AddedCost AS price
FROM piz pz
INNER JOIN crust cr
ON pz.CrustID = cr.id
INNER JOIN size sz
ON pz.SizeID = sz.id
WHERE sz.Price + cr.AddedCost = (SELECT sz.Price + cr.AddedCost AS price
FROM piz pz1
INNER JOIN crust cr1
ON pz1.CrustID = cr1.id
INNER JOIN size sz1
ON pz1.SizeID = sz1.id
ORDER BY price DESC limit 1 )
從此處選擇MAX(col),但請注意,此col必須是數字而不是字符串
嘗試這個 :
SELECT pz.id,
sz.Price + cr.AddedCost AS price
FROM piz pz, crust cr, size sz,
(
select max(sz.Price + cr.AddedCost) as v
from crust cr, size sz
where pz.SizeID = sz.id
and pz.CrustID = tp.id
)t
WHERE
pz.SizeID = sz.id AND
pz.CrustID = tp.id AND
(sz.Price + cr.AddedCost) = t.v
試試這個:
SELECT pz.id,
sz.Price + cr.AddedCost AS price
FROM piz pz, crust cr, size sz
WHERE
pz.SizeID = sz.id AND
pz.CrustID = tp.id
HAVING
price = (SELECT max(sz.Price + cr.AddedCost) from crust cr, size sz)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.