【发布时间】:2020-08-18 22:45:33
【问题描述】:
我有一张像这样的表格:
ID B C date01 date02 date03
11 xxx xxxx 2020-05-01 2020-05-02 2020-06-02
11 xxx xxxx 2020-06-01 2020-06-03 2020-05-02
11 xxx xxxx 2020-07-01 2020-07-03 2020-06-30
11 xxx xxxx 2020-07-01 2020-06-03 2020-06-30
11 xxx xxxx 2020-01-01 2020-01-08 2020-05-02
11 xxx xxxx 2020-02-01 2020-01-31 2020-05-02
22 xxx xxxx 2020-05-01 2020-05-02 2020-06-02
22 xxx xxxx 2020-06-01 2020-06-03 2020-05-02
22 xxx xxxx 2020-07-01 2020-07-03 2020-06-30
22 xxx xxxx 2020-07-01 2020-06-03 2020-06-30
22 xxx xxxx 2020-01-01 2020-01-08 2020-05-02
22 xxx xxxx 2020-02-01 2020-01-31 2020-05-02
我想返回所有内容,但每个 ID 的这三个日期的最新日期,并且 date02 不能晚于 date03,我当前的输出将给我这个 where date02 > date03:
11 xxx xxxx 2020-07-01 2020-07-03 2020-06-30
预期输出:
11 xxx xxxx 2020-07-01 2020-06-03 2020-06-30
22 xxx xxxx 2020-07-01 2020-06-03 2020-06-30
我试过了:
SELECT
id,
B,
C,
max(date01),
max(date02),
max(date03),
FROM
table
WHERE
'date02' < 'date03'
GROUP BY id
我已经添加了WHERE 'date02' < 'date03',但是为什么输出仍然有date02>date03的记录?我对 SQL 很陌生,请帮助...
【问题讨论】:
标签: mysql sql date datetime greatest-n-per-group