我在网上查找了解决此问题的解决方案,但似乎无法找到我正在查找的内容。查询使用具有优先级的多个列上的最小聚合函数
可以说,我们有一个表,看起来像这样:
_____________________________________________________
| id (PK) | name | date | ... other data ... |
-----------------------------------------------------
| 1 | BOB | 2016-11-20 | ....
--------------------------------
| 3 | CARL | 2015-09-02 | ....
--------------------------------
| 4 | BOB | 2016-11-18 | ....
--------------------------------
| 5 | JON | 2016-03-03 | ....
--------------------------------
| 6 | TIM | 2016-11-24 | ....
--------------------------------
| 7 | TIM | 2016-11-24 | ....
--------------------------------
| 8 | JON | 2016-05-05 | ....
--------------------------------
我需要一个查询,将:
1.每个返回名称的不同列表(不同的函数)
2名称有最早的日期(min函数)
3. id与上述两列一起。
4.如果日期是相同的,使用分钟(ID),以此来决定选择
所以在这种情况下,所期望的结果是这样的哪一行..
_____________________________________________________
| id (PK) | name | date | ... other data ... |
-----------------------------------------------------
| 3 | CARL | 2015-09-02 | ....
--------------------------------
| 4 | BOB | 2016-11-18 | ....
--------------------------------
| 5 | JON | 2016-03-03 | ....
--------------------------------
| 6 | TIM | 2016-11-24 | ....
--------------------------------
是有没有一种方法可以在查询中有效地执行此操作,而无需创建临时表并使用脚本循环使用它?
这让我的一半的方式有:
SELECT DISTINCT(名称),分(日期),......其他数据...从表1
当我申请的分功能ID尽管它不像我需要的那样行事。在BOB的情况下,它混合两行,并返回1'id'和'2016-11-18'的日期 - 这是完全不正确的
任何帮助,非常感谢。