gpt4 book ai didi

MySQL - 没有聚合函数的 GROUP BY 的替代方案?

转载 作者:行者123 更新时间:2023-11-30 00:05:59 25 4
gpt4 key购买 nike

想象一个无序表设置如下:

+----+------------+----------+-----------+
| ID | Project | Resource | StartDate |
+----+------------+----------+-----------+
| 1 | ExtraParts | Mark | 24/01 |
| 2 | ExtraParts | Sam | 22/01 |
| 3 | TimeLabour | Sally | 19/01 |
| 4 | TimeLabour | Sarena | 23/01 |
| 5 | Runway | Olly | 14/02 |
| 6 | Runway | Mary | 14/05 |
+----+------------+----------+-----------+

我想按每个项目的最早开始日期进行订购,但仍将每个项目的资源分组在一起(不确定我是否解释正确,但下面是我想要实现的目标)

    +----+-------------+-----------+-----------+
| ID | Project | Resource | StartDate |
+----+-------------+-----------+-----------+
| 1 | TimeLabor | Sally | 19/01 |
| 2 | TimeLabor | Sarena | 23/01 |
| 3 | ExtraParts | Sam | 22/01 |
| 4 | ExtraParts | Mark | 24/01 |
| 5 | Runway | Olly | 14/02 |
| 6 | Runway | Mary | 14/05 |
+----+-------------+-----------+-----------+

如果我按 StartDate, Project 进行 ORDER BY StartDate, Project 那么结果将会使项目变得困惑。如果我按项目、开始日期排序,则结果将首先按项目的字母顺序排序,然后按同一项目内的日期排序(如果有意义)。如上所述,我想按每个项目的最早开始日期进行排序,同时仍将项目分组在一起(不是聚合分组,只是一个在另一个下)。

非常感谢任何帮助! :)

最佳答案

类似这样的事情吗? SQL FIDDLE一起玩

SELECT project, resource, startdate
FROM testing
ORDER BY project, STR_TO_DATE(StartDate, '%d/%m')

基本上,您的表将日期存储为字符串,为了订购它,您需要将字符串转换为可识别的日期...因此 STR_TO_DATE() 是一种执行此操作的方法:)

关于MySQL - 没有聚合函数的 GROUP BY 的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24543478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com