我有行程的航类记录,并保证所选行程的所有价格均采用相同货币。
通过 group by
查询,我得到总 sum
的行程价格:
select ITINERARY_ID, sum(PRICE) from FLIGHT group by ITINERARY_ID;
我如何选择货币(对于给定的 ITINERARY_ID
,它们都相同)?
我以 min
/max
结尾:
select ITINERARY_ID, sum(PRICE), max(CURRENCY) from FLIGHT group by ITINERARY_ID;
但如果我只想选择 any 元素(它们都一样),那么对 CURRENCY
进行排序是不明智的。
min
/max
只是可能的解决方案吗?可以提高查询性能吗?
最佳答案
(they all the same for given ITINERARY_ID)
你不需要聚合它,你可以把你的查询写成
select ITINERARY_ID, CURRENCY, sum(PRICE)
from FLIGHT
group by ITINERARY_ID, CURRENCY
关于sql - 提取 SQL "group by"中的任何元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43043777/