gpt4 book ai didi

mysql - 创建一个列来保持计数

转载 作者:行者123 更新时间:2023-11-29 05:52:12 24 4
gpt4 key购买 nike

我有一个包含 4 列 ID、animalid、calvdate 和 AnimalidLactNo 的表,我想添加一个名为 lactationNo 的额外列,当 animalid 的日期发生变化时它会进行计数我会给它一个计数

下面是我的表格

CREATE TABLE `calvingdatecombined` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`animalid` varchar(80) DEFAULT NULL,
`calvDate` varchar(15) DEFAULT NULL
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=65536 DEFAULT CHARSET=latin1;

我的预期输出:

#ID, animalid,calvDate,LactationID

1,ANIM400,2015-10-14,1
2,ANIM400,2015-10-15,2
3,ANIM400,2016-10-14,3
4,ANIM403,2015-10-14,1
5,ANIM404,2015-10-14,1

最佳答案

在 MySQL 版本 < 8.0 中,我们可以 emulate Row number functionality使用 session 变量:

SELECT 
dt.ID,
@row_num := IF(@aid <> dt.animalid, 1, @row_num + 1) AS LactationID,
@aid := dt.animalid AS animalid,
dt.calvDate
FROM
(
SELECT
ID,
animalid,
calvDate
FROM calvingdatecombined
ORDER BY animalid, calvDate, ID
) AS dt
CROSS JOIN (SELECT @row_num := 0,
@aid := '') AS user_init_vars
ORDER BY dt.ID

关于mysql - 创建一个列来保持计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52964939/

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