gpt4 book ai didi

mysql - mysql表中计数值从0到1的变化

转载 作者:可可西里 更新时间:2023-11-01 07:56:30 26 4
gpt4 key购买 nike

我有一列有两列。一个是 TIMESTAMP,另一个是 DIGITAL_BIT

值数字位可以是 0 或 1,一天中会更改几次。一天中的每一分钟都存储在这个表中。我需要以某种方式读取此值一天从 0 变为 1 的次数。

是否可以进行查询以返回此更改的计数?我的想法是这样的:

select * from mytable where digital_bit = 1 and digital_bit (of previous row) = 0 order by timestamp

这可以通过查询来完成,还是我必须处理程序中的所有数据?

谢谢

样本

timestamp | digital_bit

100000 | 0
100001 | 0
100002 | 1
100003 | 1
100004 | 0
100005 | 1
100006 | 0
100007 | 0
100008 | 1

上面应该返回 3,因为 3 次值数字从 0 传递到 1。我需要计算值数字从 0 到 1 变化的频率。

最佳答案

给你。这将使您计算出 digital_bit 从 0 切换到 1 的次数(在您的示例中,这将返回 3)。

SELECT COUNT(*)
FROM mytable curr
WHERE curr.digital_bit = 1
AND (
SELECT digital_bit
FROM mytable prev
WHERE prev.timestamp < curr.timestamp
ORDER BY timestamp DESC
LIMIT 1
) = 0

SQLFiddle link

(原始答案依赖于时间戳的连续性:例如,没有从 100001 跳到 100003。答案现已更新为没有该限制。)

关于mysql - mysql表中计数值从0到1的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19859071/

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