gpt4 book ai didi

mysql - 获取行数 + 最后插入的行

转载 作者:行者123 更新时间:2023-11-29 17:15:53 24 4
gpt4 key购买 nike

我有这个sql:

SELECT count(*) as nb, data_type, rawValue, createdAt 
FROM my_table WHERE data_type in('t','r', 'b')
AND CreatedAt >= DATE_SUB(NOW(), interval 24 HOUR)
AND CreatedAt <= NOW() AND device=27 AND id=462
group by data_type order by createdAt DESC ;

现在我得到这样的数据:

nb       data_type       rawValue           createdAt
20 t test 2018-08-01 07:30:30
20 r test 2018-08-01 08:30:30

对于data_type = t,我有来自2018-08-01 10:10:23的行,但正在获取第一个值,而不是createAt的最后一个值。你能帮我吗 ?提前谢谢。

最佳答案

看来db是mysql,当您将使用聚合函数时,选择列应该位于 group by 子句中。我们知道 now() 返回今天的当前日期时间,因为您给定的间隔为 24 小时,所以只需注意选择时记录是否在此持续时间内,因为除了按子句列分组外,您的查询几乎没问题,我将这些列放入组中按条款

正如您所期望的每个 data_type 1 行,所以我的更改如下

    select T.nd,T.data_type,A.rawValue,T.createdAt from
(
SELECT count(*) as nb, data_type,
max(createdAt) as createdAt
FROM table WHERE data_type in('t','r', 'b')
AND CreatedAt >= DATE_SUB(NOW(), interval 24 HOUR)
AND CreatedAt <= NOW() AND device=27 AND id=462
group by data_type
) as T left join table A
on T.createdAt=A.createdAt
and T.data_type=A.data_type
where A.data_type in ('t','r', 'b')
AND A.CreatedAt >= DATE_SUB(NOW(), interval 24 HOUR)
AND A.CreatedAt <= NOW() AND device=27 AND id=462

如果您分享表格示例数据和预期输出,那就太好了

关于mysql - 获取行数 + 最后插入的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51630307/

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