希望你做得很好,有一些查询数据的问题,试图用不同的答案来回答以前的帖子,但不能解决它。我得到了一些产品的数据,记录显示,人们可能在一天内多次更改商品的价格或成本,因此我需要获取每一天/商品的最后一条记录。下面是数据库记录的一个示例:Table example
为了让每个项目每个日期都有一条记录,你建议做什么?
我已经尝试过了,但它为每个记录带来了相同的日期:
SELECT
Product,
Date,
Price_of_item,
Cost_of_item
FROM server
WHERE DATE IN (SELECT MAX(DATE) FROM server GROUP BY DAY(DATE))提前谢谢你
发布于 2020-09-14 23:59:22
我们真的需要知道你使用的是什么数据库来提供准确的答案。希望这些变体中的一个可以为您工作
使用公用表表达式:
WITH CTE AS (
SELECT product
,DAY(DATE) as day
,MAX(DATE) as maxdate
FROM server
GROUP BY product,DAY(DATE)
)
SELECT
CTE.Product,
CTE.MaxDate as Date,
s.Price_of_item,
s.Cost_of_item
FROM CTE
INNER JOIN server s
ON CTE.product=s.product and CTE.MaxDate=s.Date使用分析函数:
SELECT DISTINCT
product
,FIRST_VALUE(DATE) OVER (PARTITION BY Product,DAY(DATE) ORDER BY Date DESC) as Date
,FIRST_VALUE(Price_of_item) OVER (PARTITION BY Product,DAY(DATE) ORDER BY Date DESC) as Price_of_item
,FIRST_VALUE(Cost_of_item) OVER (PARTITION BY Product,DAY(DATE) ORDER BY Date DESC) as Cost_of_item
FROM server 这两个命令的输出都应该是:
Product Date Price of item Cost of item
C 2/9/2020 13:20 20 5
C 5/9/2020 18:10 22 8
A 12/9/2020 18:50 31 16https://stackoverflow.com/questions/63887604
复制相似问题