我想将某个组的第一个元素分配为0。下表分别是原始结果和最终结果。
CREATE TABLE IF NOT EXISTS t1 (
id_ INTEGER NOT NULL,
value1 INT NOT NULL
)
CREATE TABLE IF NOT EXISTS result (
id_ INTEGER NOT NULL,
new_col INT NOT NULL
)
INSERT INTO t1 (id_, value1) VALUES
(1, 1),
(2, 1),
(2, 1),
(3, 1),
(3, 1),
INSERT INTO result (id_, new_col) VALUES
(1, 0),
(2, 0),
(2, 1),
(3, 0),
(3, 1)
这将仅在 MySQL 中运行,在 MariaDB 中,您将需要内部 SELECT 中的 LIMITit
最主要的是内部 SRLCT 的 ORDER,它决定了它将获得哪个行号 (rn)。在这里我选择
ORDER BY id
实现你的结果。但是正如 mustachio 指出的那样,您必须定义一个订单,这样才能正常工作db<>在这里摆弄