此問題是this較早問題(未由我提問)的擴展。如何GROUP和選擇SQL和相關列中的最低值
我有包括這些字段的表:
id | date_from | date_to | price | priceName
--------------------------------------------------------
CK1 22-12-2012 29-12-2012 800 low
CK1 22-12-2012 29-12-2012 1200 medium
CK2 22-12-2012 29-12-2012 1400 high
CK2 22-12-2012 29-12-2012 1800 very high
CK2 22-12-2012 29-12-2012 2200 extortionate
如何創建一個SQL選擇組的結果通過ID,DATE_FROM,DATE_TO從價格挑選的最低值,並且是priceName關聯最低價格?
那麼結果將是
CK1 22-12-2012 29-12-2012 800 low
CK2 22-12-2012 29-12-2012 1400 high
從以前的問題,我可以這樣做:
select id, date_from, date_to, min(price)
from table
group by id, date_from, date_to
如何擴展這個只能選擇將最低(價格)相匹配的priceName?按priceName分組將不起作用,因爲它不限制爲min(價格)。
請問您的表有某種ROW_ID主鍵或者是複合鍵(id,date_from,DATE_TO,價格)?您可以將您的查詢包裝在CTE中,並根據主要查詢中的密鑰丟失praceName。 'WITH cte AS(SELECT uniqueId,...)SELECT * FROM table_name t JOIN cte c ON t.uniqueId = c.uniqueId' – lad2025
它是一個複合關鍵字:id,date_from,date_to(不是價格)。 – Polyfun