电池维护困难分组

nue99wik  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(197)

我有一个包含以下字段的表。

EntryID, Date, BatteryID, Capacity, Type

entryid是自动递增的唯一记录号
日期是创建记录时的日期戳
batteryid是该电池的唯一名称,如nimh1、nimh2等
容量是特定电池的测量容量
类型是电池的类型,如nimh aa、nicd aaa、nimh aaa、nimh d等
我想。。。
1). 选择所有类型为nimh aa的电池
2). 从那些我想按batteryid分类(分组)的
3). 对于每个batteryid,我只想选择一个具有最新日期的
这是我正在使用的查询字符串,它几乎可以工作,但没有为每个电池选择最新日期的记录。在这种情况下,我不知道如何告诉GROUPBY子句选择最新日期的记录。
从电池中选择batteryid、capacity、type、notes,其中type='nimh aa'group by batteryid order by capacity
谢谢
我明白了。。。。。
图1

我想要这个。。。。。
图像2

xoefb8l8

xoefb8l81#

这是一个非常常见的报告要求。在mysql中,您可以通过连接到执行 GROUP BY 要查找每个电池组的最新记录:

SELECT b1.*
FROM batteries b1
INNER JOIN
(
    SELECT BatteryID, MAX(Date) AS max_date
    FROM batteries
    WHERE type = 'NiMh AA'
    GROUP BY BatteryID
) b2
    ON b1.BatteryID = b2.BatteryID AND b1.Date = b2.max_date
WHERE
    b1.type = 'NiMh AA';

相关问题