SQL按两列的最大值排序

标签 sql postgresql

我有一个带有一些 double 的 PostgreSQL 表,它们存储百分比。所以假设列是 pc_1pc_2

我想要的是按这两列中金额最高的降序排列,然后按另一列降序排列。

那么如果我们的数据如下:

id  pc_1  pc_2 
 1  12.5  11.0
 2  10.0  13.2
 3  13.2  9.0
select * from mytable order by <something>

会给出:

 2  10.0  13.2
 3  13.2  9.0
 1  12.5  11.0

最佳答案

SELECT  *
FROM    mytable
ORDER BY
        GREATEST(pc_1, pc_2) DESC, LEAST(pc_1, pc_2) DESC

关于SQL按两列的最大值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10953138/

相关文章:

python - Flask-migrate 使 SQLite 迁移而不是 PSQL

php - 防止动态 SQL 中的 SQL 注入(inject)

MySQL - 带有连接表的 GROUP_CONCAT() - 意外结果

mysql - 根据列值在 Laravel 中自定义排序

mysql - 如何设置数据库 MySQL、Oracle、PostGreSQL 或 DB2 的最大磁盘大小?

java - 在intellij中使用java连接到数据库(postgres)

sql - Postgresql 如何将两个数组列拆分并映射为单独的列

mysql - 如何使用 ColdFusion 连接到 MySQL 数据库?

SQL Server 在 2 个(或多个)聚合上进行透视

sql - Postgresql 在同一个表中选择和子选择