sql - 提取 SQL "group by"中的任何元素

标签 sql oracle group-by

我有行程的航类记录,并保证所选行程的所有价格均采用相同货币。

通过 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/

相关文章:

database - 自动创建数据库表的脚本

oracle - 查找 Oracle 中的列是否具有序列

mysql - 提高JOIN和GROUP BY性能的指标有哪些

sql - 更改Oracle中数字列的精度

mysql - SQL if not null update

sql - noSQL/SQL/RoR : Trying to build scalable ratings table for the game

oracle - 使用 tns 别名连接时出现 ORA-12154

mysql - 如何在 MySQL 中启用 ONLY_FULL_GROUP_BY

python - Pandas 将一组中的行与前一组的行进行比较

php - php中的sql不工作可能是编码?