根据另一列

时间:2018-06-03 17:02:44

标签: sql postgresql

我在 PostgreSQL 数据库(版本initial_freq)中有一张表10.4}:

 initial | freq 
---------+------
 r       |   20
 s       |   20
 a       |   10
 m       |   10
 p       |    7
 k       |    6
 d       |    5
 n       |    3
 g       |    3
 c       |    3
 v       |    3
 b       |    3
 h       |    2
 y       |    2
 j       |    2
 i       |    1

要求是,只要freq列中存在平局,  必须对initial列中的相应值进行排序 按字母顺序。

必需输出如下所示:

 initial | freq 
---------+------
 r       |   20
 s       |   20
 a       |   10
 m       |   10
 p       |    7
 k       |    6
 d       |    5
 b       |    3
 c       |    3
 g       |    3
 n       |    3
 v       |    3
 h       |    2
 j       |    2
 y       |    2
 i       |    1

这是一个大问题的一部分,除了这个问题,我解决了大部分问题。

我意识到这可能是一个动态编程问题,我可以用其他编程语言解决它。

我是SQL世界的新手。任何帮助都会很多 赞赏。

1 个答案:

答案 0 :(得分:1)

使用ORDER BYfreq DESC订购,然后按initial订购。

SELECT
  *
FROM
  your_table
ORDER BY
  freq DESC, initial;