在MySQL中,如何按照p12(datetime类型)字段降序对表x99003359进行分组,并选取每个分组中最新的(即p12大于当前时间减去15天)F1字段的记录?
时间: 2024-11-05 15:26:31 浏览: 26
MySQL字段类型说明
在MySQL中,你可以使用子查询和`GROUP BY`语句配合`MAX()`函数以及`BETWEEN`运算符来实现这一需求。首先计算出当前时间减去15天,然后筛选出符合条件的记录并按p12降序分组。以下是相应的SQL查询示例:
```sql
SELECT F1
FROM x99003359 t1
WHERE p12 >= DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 15 DAY)
AND p12 IN (
SELECT MAX(p12) as max_p12
FROM x99003359 t2
WHERE p12 >= DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 15 DAY)
GROUP BY GROUP_CONCAT(F1 SEPARATOR ',') AS group_concat_f1
)
GROUP BY GROUP_CONCAT(F1 SEPARATOR ',') as group_concat_f1
ORDER BY p12 DESC;
```
这里我们使用了`GROUP_CONCAT`来合并每个分组的F1值,因为分组时直接使用F1可能会导致多次出现相同的F1值,所以先合并成字符串再分组。
阅读全文