gpt4 book ai didi

mysql - 在sql中计算列值

转载 作者:可可西里 更新时间:2023-11-01 08:39:11 25 4
gpt4 key购买 nike

我在 MySQL 数据库中有一个看起来像这样的表:

SELECT * FROM pi;

Employee_id 年份
1000 2014
1000 2015
1001 2014
1002 2014
1002 2015
1003 2015
1004 2015

当我运行以下查询时:

SELECT Employee_id, MIN(年)
从 pi
GROUP BY Employee_id;

我得到:

Employee_id 年份
1000 2014
1001 2014
1002 2014
1003 2015
1004 2015

现在我想向原始表值添加一个新列,如果该行的 Year 值等于 Employee_id 的 MIN(Year),则该列应为“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_id 新年
1000 2014 0
1001 2014 0
1002 2014 0
1003 2015 0
1004 2015 0

另一方面,当我尝试时:

SELECT Employee_id, MIN(Year),
(CASE WHEN(SELECT MIN(Year) FROM pi
WHERE Employee_id = Employee-id
GROUP_BY employee_id < Year) THEN '0' ELSE '1' END) New
FROM pi;

我得到了:

Employee_id 新年
1000 2014 1

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

最佳答案

您可以在迷你表上使用联接

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

关于mysql - 在sql中计算列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44754106/

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