Mysql 在sql中计算列值

Mysql 在sql中计算列值,mysql,subquery,Mysql,Subquery,我在MySQL数据库中有一个表,如下所示: 从pi中选择* Employee\u id年 1000 2014 1000 2015 1001 2014 1002 2014 1002 2015 1003 2015 1004 2015 当我运行以下查询时: 选择员工id,最小(年) 来自pi 按员工id分组 我得到: Employee\u id年 1000 201

我在MySQL数据库中有一个表,如下所示:

从pi中选择*

Employee\u id年
1000           2014
1000           2015
1001           2014
1002           2014
1002           2015
1003           2015
1004 2015

当我运行以下查询时:

选择员工id,最小(年)
来自pi
按员工id分组

我得到:

Employee\u id年
1000           2014
1001           2014
1002           2014
1003           2015
1004 2015

现在,我想在原始表值中添加一个新列,如果行的年份值等于员工id的最小值(年份),则该列的值应为“0”,否则为“1”。我试过:

SELECT Employee_id, MIN(Year),
 (CASE WHEN(SELECT MIN(Year) FROM pi WHERE Employee_id = Employee_id < Year) THEN '0' ELSE '1' END) New
FROM pi
GROUP BY Employee_id;
我得到的只是:

Employee\u id新年
1000 2014 1

我尝试了一些额外的查询,但它们都呈现了错误消息或与这两个相同的结果,所以我被困在这里。有什么建议吗?
谢谢。

您可以在min表上使用join

select t.Employee_id, t.min_year
  , case when pi.year = t.min_year then 0 else 1 end as my_check
from pi inner join (

    SELECT Employee_id, MIN(Year) as min_year
    FROM pi
    GROUP BY Employee_id
)  t on t.Employee_id = pi.Employee_id
select t.Employee_id, t.min_year
  , case when pi.year = t.min_year then 0 else 1 end as my_check
from pi inner join (

    SELECT Employee_id, MIN(Year) as min_year
    FROM pi
    GROUP BY Employee_id
)  t on t.Employee_id = pi.Employee_id