sql语句 某单位最早出现某规格的日期作为新列

问题遇到的现象和发生背景

sql不会写

问题相关代码,请勿粘贴截图

select OCUSNAME , ODGSPEC , ODATE,…… 新列1, 系列2 from……

运行结果及报错内容
我的解答思路和尝试过的方法

做不来了

我想要达到的结果

OCUSNAME ODGSPEC ODATE……
公司名称 规格名称 日期……
表名 T1

结果
公司名称 规格名称 日期 ……新列1 新列2

新列1为:某公司最早出现某规格的日期
新列2为:新列1是否大于2021.05.01,Y ,N

mysql 8.0以上支持开窗函数

first_value(ODATE) over(partition by OCUSNAME,ODGSPEC order by ODATE)  新列1,
case when  first_value(ODATE) over(partition by OCUSNAME,ODGSPEC order by ODATE) > str_to_date('2021-05-01','%Y-%m-%d') then 'Y' else 'N' end 新列2

你的mysql版本不是太清楚,按照老的来,没有开窗函数的写法:
通过一个查询,将最早日期先算出来,然后进行原查询语句的关联:

SELECT OCUSNAME,ODGSPEC,ODATE,NEW_COL_1,
CASE WHEN NEW_COL_1 >  STR_TO_DATE('01/05/2021', '%m/%d/%Y')  THEN 'Y' ELSE 'N' END AS NEW_COL_2
FROM TABLE T1 LEFT JOIN 
(SELECT OCUSNAME,ODGSPEC,  MIN(ODATE) FROM TABLE T1 GROUP BY OCUSNAME,ODGSPEC) T2
ON T1.OCUSNAME = T2.OCUSNAME  AND T1.ODGSPEC = T2.ODGSPEC 

希望可以帮助到你。