小编Wox*_*Wox的帖子

如何按日期排序但按特定列值分组 SQL

我有一张看起来像这样的桌子。

my_id |    date
-------------------  
  1   | 2013-04-01
  1   | 2013-04-02
  2   | 2013-04-03
  1   | 2013-04-04
  3   | 2013-04-05
  2   | 2013-04-06
Run Code Online (Sandbox Code Playgroud)

我想要一个给出这个结果的 SQL 查询。

my_id |    date
-------------------  
  2   | 2013-04-06
  2   | 2013-04-03
  3   | 2013-04-05
  1   | 2013-04-04
  1   | 2013-04-02
  1   | 2013-04-01
Run Code Online (Sandbox Code Playgroud)

所以我希望所有具有相同 my_id 的内容都按日期降序排列。my_id 的组应根据组中的最新日期按日期降序排序。

这就像您可以说的线程对话,my_id 是对话 ID,日期是该对话的帖子日期。因此,在列表中显示时,与最新帖子的对话应位于顶部。

后续问题如果 my_id 为 NULL,则它们不应分组在一起,但仍按日期排序。例如,如果他们不参与对话,就会出现这种情况。

my_id |    date
-------------------  
  1   | 2013-04-01
  1   | 2013-04-02
  2   | 2013-04-03
  1   | 2013-04-04
 NULL | 2013-04-05
  2   | …
Run Code Online (Sandbox Code Playgroud)

sql sqlite sorting sql-order-by

3
推荐指数
1
解决办法
2536
查看次数

标签 统计

sorting ×1

sql ×1

sql-order-by ×1

sqlite ×1