gpt4 book ai didi

mysql - 查找最小值并包含正确的列值

转载 作者:可可西里 更新时间:2023-11-01 08:39:51 25 4
gpt4 key购买 nike

我正在尝试获取每次旅行的最低价格,并知道哪些旅行详细信息对应于每次旅行的最低价格。

为此,我尝试了各种子查询、连接等变体,但由于没有一个主键,我无法弄清楚。

我想要实现的是获得最低价格的旅行,然后将最低价格的旅行详细信息包含在记录中。

  SELECT travel_id, persons, days, MIN(`price`) AS `price` 
FROM travel_details
WHERE 1
GROUP BY `travel_id`
HAVING MIN(price);

我的表列的简单版本,列是:travel_idpersonsdaysprice

这些列一起构成了主键。

可以为不同的人、日期和价格预订旅行。对于 travel_idpersonsdays 的相同组合,也可能会出现多个价格选项。

例如,

100, 2,   4, **250**

100, 2, 4, **450**

100, 2, **5**, 450

101, 2, 4, 190

101, 2, 5, 185

travel_id 100 for 2 persons for 4 persons.

我想实现的是返回:100、250,然后是正确对应的值:

100、2、4、250

101、2、5、185

现在我的结果只是混合了所有其他数据。当我将这些列包含在分组依据中时,它不仅会根据 travel_id 分组,而且还会根据 persons 分组。然后它将返回 travel_idpersons 的所有组合。

知道如何解决这个问题吗?

最佳答案

    Select a.travel_id, a.persons, a.days, a.price from  travel_details a 
JOIN (Select travel_id,MIN(Price) as p from travel_details group by travel_id) b
on b.travel_id=a.travel_id and b.p=a.price

上面的查询使用了自连接。派生表 b 将包含 travel_id 以及最低价格。

关于mysql - 查找最小值并包含正确的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37027319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com