gpt4 book ai didi

sql - 选择具有最大时间戳的唯一条形码

转载 作者:行者123 更新时间:2023-12-01 13:58:38 25 4
gpt4 key购买 nike

我正在尝试使用 Microsoft SQL Server 编写 SQL 查询。

我的表格看起来与此类似:

bardcode |  products |      timestamp

1234 | 12 | 2013-02-19 00:01:00
1234 | 17 | 2013-02-19 00:01:00
432 | 10 | 2013-02-19 00:01:00
432 | 3 | 2013-02-19 00:02:00
643 | 32 | 2013-02-19 00:03:00
643 | 3 | 2013-02-19 00:03:00
123 | 10 | 2013-02-19 00:04:00

我正在尝试根据最近的时间戳获取唯一条形码列表。

这是我一直在考虑的无效查询:

    SELECT DISTINCT [Barcode], [Timestamp]
FROM [InventoryLocatorDB].[dbo].[Inventory]
WHERE max([Timestamp])

编辑 我也想保留额外的列。我是做加入还是做某事。

例如,我想选择具有最新时间戳的条形码,并希望所有其他列信息都随之而来,例如产品专栏

最佳答案

这应该有效:

SELECT   [Barcode], max([TimeStamp])
FROM [InventoryLocatorDB].[dbo].[Inventory]
GROUP BY [Barcode]

Demo

编辑

SELECT [Barcode], [Products], [TimeStamp]
FROM [InventoryLocatorDB].[dbo].[Inventory] AS I
WHERE [TimeStamp] = (SELECT MAX([TimeStamp])
FROM [InventoryLocatorDB].[dbo].[Inventory]
WHERE [Barcode] = I.[Barcode])

查询保留具有相同BarCode/TimeStamp 的元组。根据 TimeStamp 的粒度,这可能无效。

Demo 2

有很多方法可以“过滤”上面的结果。

例如每个 BarCode 只有一个元组,最新的 TimeStampProducts 的最大值:

SELECT [Barcode], [Products], [TimeStamp]
FROM [InventoryLocatorDB].[dbo].[Inventory] AS I
WHERE [TimeStamp] = (SELECT MAX([TimeStamp])
FROM [InventoryLocatorDB].[dbo].[Inventory]
WHERE [Barcode] = I.[Barcode]) AND
[Products] = (SELECT MAX([Products])
FROM [InventoryLocatorDB].[dbo].[Inventory]
WHERE [Barcode] = I.[Barcode] and [TimeStamp] = I.[TimeStamp])

Demo 3

关于sql - 选择具有最大时间戳的唯一条形码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26341790/

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