此问题是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