【问题标题】:DISTINCT datetime in SQL querySQL 查询中的 DISTINCT 日期时间
【发布时间】:2017-08-11 12:31:29
【问题描述】:

我正在绘制来自大型数据库(150K+ 行)的数据,并且一些数据点具有相同的时间戳和不同的价格值。

例如:

time  => 1502050000
price => 1

time  => 1502050000 // identical timestamp
price => 1.1

在 SQL 查询中,我想忽略重复的时间戳。我发现 DISTINCT 可能会完成这项工作,但我坚持将其应用于我数据库中的日期时间字段。这是我的工作 SQL 查询,它引入了重复的时间戳。

SELECT time, price FROM price_table WHERE time >= '" . $data_from . "' ORDER BY time ASC

我的目标是只获取唯一的时间戳,并避免查询重复。

【问题讨论】:

  • 但是,这似乎很明显,价格不同。
  • 如果同一日期时间有两个不同的价格,则有两行..
  • 我很欣赏 cmets 的家伙,但我希望只过滤独特的时间戳,无论价格是否不同。

标签: php mysql sql datetime


【解决方案1】:

你可以使用聚合:

SELECT time, MIN(price) as price
FROM price_table
WHERE time >= '" . $data_from . "'
GROUP BY time
ORDER BY time ASC;

当然,这引出了一个问题,即当有重复项时,price 需要什么。

【讨论】:

  • 为简单起见,我会采用第一个记录的价格。我会试试你的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多