SQL:如何每天选择一行

Posted

技术标签:

【中文标题】SQL:如何每天选择一行【英文标题】:SQL: How to select one row per day 【发布时间】:2017-12-09 19:46:21 【问题描述】:

我有一个数据库,每分钟都有一个行条目(每天 86,000 个值),我正在尝试编写 php 来每天只选择一行。我有一列“时间戳”,其中包含常规格式的当前时间戳(2017-12-09 06:49:02)。

有人知道如何编写选择语句来做我想做的事吗?

示例输出:

2017-12-09 06:49:02, datavalue
2017-12-10 06:49:02, datavalue
2017-12-11 06:49:02, datavalue
2017-12-12 06:49:02, datavalue

【问题讨论】:

尝试在您的声明中使用DISTINCT - SELECT DISTINCT DATE(TIMESTAMP) FROM YOUR_TABLE ORDER BY DATE(TIMESTAMP); 这是一个非常好的主意,但我尝试了 '$sql = "SELECT DISTINCT DATE(timestamp) * FROM db";'我得到了 0 个结果 我认为查询中不需要“ * ” 【参考方案1】:

这是一种方法:

select t.*
from t join
     (select min(t2.timestamp) as min_timestamp
      from t t2
      group by date(t2.timestamp)
     ) t2
     on t.timestamp = t2.min_timestamp;

【讨论】:

看起来不错,但你能解释一下“t.*”是什么吗? @Gordon 你怎么知道他想要当天的第一排? @itsLex 。 . .我不。但是当天的第一条记录是每天获取一条记录的有效方式。 @pclever1 。 . . t 是您的表名。 小心,如果你有两个具有相同的时间戳,你会得到多行返回。但在这种情况下你不会:)。另见***.com/questions/3800551/…

以上是关于SQL:如何每天选择一行的主要内容,如果未能解决你的问题,请参考以下文章

如何每天为每个唯一标识符快速创建一行?

选择一个Id每天的最新记录 - Oracle pl sql

如何安排作业以每天运行 SQL 查询?

如何实现Mysql数据库每天自动备份定时备份?

如何实现Mysql数据库每天自动备份定时备份

如何设置sql数据库每天多次备份?比如上午和下午分别各做一次备份。