gpt4 book ai didi

mysql group 通过使用范围记录值

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

在 SQL 中我有下面的表 t_test:

emp_code | period_month | company_code  NIK001   | 01           | ALPHANIK001   | 02           | ALPHANIK001   | 03           | ALPHANIK001   | 04           | ALPHANIK001   | 05           | ALPHANIK001   | 06           | BETA NIK001   | 07           | BETANIK001   | 08           | BETANIK001   | 09           | BETANIK001   | 10           | ALPHANIK001   | 11           | ALPHANIK001   | 12           | ALPHA

我想查询以下结果:

emp_code | company_code | from_month  | to_month --------------------------------------------------NIK001   | ALPHA        | 01          | 05NIK001   | BETA         | 06          | 09NIK001   | ALPHA        | 10          | 12

最佳答案

这让我害怕得发抖,但它确实输出了你所追求的近似值:

    select w.emp_code, w.company_code, w.period_month from_month,
(select min(convert(u.period_month,unsigned))-1 from t_test u where u.emp_code=w.emp_Code and convert(u.period_month,signed)>convert(w.period_month,signed) and u.company_code<>w.company_code) to_month
from
(
select * from
(
select y.emp_code, y.period_month, y.company_code,
(select x.company_code from t_test x where x.emp_code=y.emp_code and convert(x.period_month,unsigned)<convert(y.period_month,unsigned) order by convert(x.period_month,unsigned) desc limit 1) previous_company_code
from t_test y
) z
where company_code<>previous_company_code or previous_company_code is null
) w

不过,我出于好奇尝试了这个。对于您的生产环境,您不应该真的依赖任何类似的东西。我认为简单的 SQL 查询不适合您的问题。我会去别处看看。

编辑:基于下表:

CREATE TABLE `t_test` (
`emp_code` varchar(50) DEFAULT NULL,
`period_month` varchar(2) DEFAULT NULL,
`company_code` varchar(50) DEFAULT NULL
);

填充了以下 INSERT 语句:

INSERT INTO `t_test` (`emp_code`,`period_month`,`company_code`)
VALUES
('NIK001', '01', 'ALPHA'),
('NIK001', '02', 'ALPHA'),
('NIK001', '03', 'ALPHA'),
('NIK001', '04', 'ALPHA'),
('NIK001', '05', 'ALPHA'),
('NIK001', '06', 'BETA'),
('NIK001', '07', 'BETA'),
('NIK001', '08', 'BETA'),
('NIK001', '09', 'BETA'),
('NIK001', '10', 'ALPHA'),
('NIK001', '11', 'ALPHA'),
('NIK001', '12', 'ALPHA');

关于mysql group 通过使用范围记录值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5691159/

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