简体   繁体   English

MYSQL 为每组设置基于列的第一条记录

[英]MYSQL set column based first record for each group

I have a table which can be recreated as我有一个可以重新创建的表

create table test
 (employeeID int,
  date Date,
  TookTest int
 );

insert into test(employeeID, date, TookTest)
values
(1, '2014-01-01', 1),
(1, '2014-01-02', 1),
(1, '2014-01-03', 1),
(2, '2014-01-01', 1),
(2, '2014-01-20', 1),
(3, '2014-01-01', 1),
(3, '2014-01-21', 1),
(4, '2014-01-03', 1),
(4, '2014-01-27', 1)

I am trying to set the first record of every group to be 0 in the newCol我正在尝试将每个组的第一条记录设置为newCol中的 0

employeeID  date        TookTest  newCol
----------------------------------------
1         2014-01-01      1         0
1         2014-01-02      1         1
1         2014-01-03      1         1
2         2014-01-01      1         0
2         2014-01-20      1         1
3         2014-01-01      1         0
3         2014-01-21      1         1
4         2014-01-03      1.        0
4         2014-01-27      1.        1

How do I go about this?我该如何 go 关于这个?

UPDATE test t1
JOIN ( SELECT t2.employeeID, MIN(t2.`date`) `date`
       FROM test t2
       GROUP BY 1 ) t3 USING (employeeID, `date`)
SET t1.TookTest = 0;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM