gpt4 book ai didi

php - 计算不同的行数

转载 作者:行者123 更新时间:2023-11-29 18:28:06 25 4
gpt4 key购买 nike

我有一个数据库表,其中包含以下格式的几行:

id | date | position | change_id
1 | 2013-05-14 | 1 | 1
2 | 2013-05-14 | 2 | 2
3 | 2013-05-14 | 2 | 3

4 | 2013-05-15 | 2 | 1 <--- changed from prev day
5 | 2013-05-15 | 1 | 2 <--- changed from prev day
6 | 2013-05-15 | 2 | 3

7 | 2013-05-16 | 2 | 1 <--- not changed from prev day
8 | 2013-05-16 | 1 | 2 <--- not changed from prev day
9 | 2013-05-16 | 2 | 3 <--- not changed from prev day

我想要做的是计算两个日期之间发生的 position 列有多少行发生了变化,即在示例中我想要获取发生变化的次数2013-05-162013-05-15 之间的位置不同。该值将为 0,因为 position 值尚未更改。

但是如果我想使用日期 2013-05-152013-05-14 那么计数将为 2,因为位置值已更改两次(如图)

这可以在单个查询中完成吗?还是我需要在服务器端进行某种处理?

谢谢

最佳答案

<强> SQL DEMO

SELECT r1.`date`, 
SUM(CASE WHEN r1.`position` != r2.`position`
THEN 1
ELSE 0
END) as daily_changes
FROM `rankings` r1
LEFT JOIN `rankings` r2
ON r1.`date` = r2.`date` + 1
AND r1.`change_id` = r2.`change_id`
GROUP BY r1.`date`

输出

enter image description here

关于php - 计算不同的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45984940/

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