首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带来每一天的最新值

带来每一天的最新值
EN

Stack Overflow用户
提问于 2020-09-14 23:43:45
回答 1查看 34关注 0票数 0

希望你做得很好,有一些查询数据的问题,试图用不同的答案来回答以前的帖子,但不能解决它。我得到了一些产品的数据,记录显示,人们可能在一天内多次更改商品的价格或成本,因此我需要获取每一天/商品的最后一条记录。下面是数据库记录的一个示例:Table example

为了让每个项目每个日期都有一条记录,你建议做什么?

我已经尝试过了,但它为每个记录带来了相同的日期:

代码语言:javascript
复制
SELECT
Product,
Date,
Price_of_item,
Cost_of_item

FROM server 
WHERE DATE IN (SELECT MAX(DATE) FROM server GROUP BY DAY(DATE))

提前谢谢你

EN

回答 1

Stack Overflow用户

发布于 2020-09-14 23:59:22

我们真的需要知道你使用的是什么数据库来提供准确的答案。希望这些变体中的一个可以为您工作

使用公用表表达式:

代码语言:javascript
复制
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

使用分析函数:

代码语言:javascript
复制
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 

这两个命令的输出都应该是:

代码语言:javascript
复制
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              16
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63887604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档