job_total = data.groupby('招聘岗位')['招聘信息id'].count().reset_index()中的['招聘信息id']是干嘛的
时间: 2023-10-07 12:05:44 浏览: 19
['招聘信息id']是用来统计每个招聘岗位中招聘信息的数量的。在该代码中,首先使用 groupby 函数按照招聘岗位来对数据进行分组,然后使用 count 函数对每个分组中的招聘信息id进行计数,最后使用 reset_index 函数将结果转换为一个新的数据框。而 ['招聘信息id'] 则是在计数函数 count 中用于指定需要被计数的数据列。
相关问题
select a.job_id, a.job_name, a.job_group, a.invoke_target, a.cron_expression, a.misfire_policy, a.concurrent, a.status, a.create_by, a.create_time, a.remark, a.job_des, a.cron_des, b.status as last_execute_status, b.create_time as last_execute_time from sys_job a left join sys_job_log b ON a.job_name = b.job_name and a.job_group = b.job_group where b.create_time = (select max(create_time) from sys_job_log c where a.job_name = c.job_name and a.job_group = c.job_group) or b.create_time is null有重复数据,运行环境为oracle11g,请对其进行优化
可以考虑对该SQL语句进行以下优化:
1. 使用子查询代替LEFT JOIN:将子查询的结果作为一个临时表,再和sys_job表进行关联,可以减少关联表的数量,提高查询效率。
2. 使用EXISTS代替子查询:EXISTS用于查询是否存在符合条件的记录,比子查询更高效,可以进一步提高查询效率。
3. 添加索引:对sys_job_log表的job_name、job_group、create_time字段添加联合索引,可以加速子查询和关联查询。
优化后的SQL语句如下:
```
SELECT a.job_id, a.job_name, a.job_group, a.invoke_target, a.cron_expression, a.misfire_policy, a.concurrent, a.status, a.create_by, a.create_time, a.remark, a.job_des, a.cron_des, b.status AS last_execute_status, b.create_time AS last_execute_time
FROM sys_job a
LEFT JOIN sys_job_log b ON a.job_name = b.job_name AND a.job_group = b.job_group AND b.create_time = (SELECT MAX(create_time) FROM sys_job_log c WHERE a.job_name = c.job_name AND a.job_group = c.job_group)
WHERE NOT EXISTS (SELECT 1 FROM sys_job_log c WHERE a.job_name = c.job_name AND a.job_group = c.job_group AND c.create_time > b.create_time)
OR b.create_time IS NULL;
```
同时,需要在sys_job_log表的job_name、job_group、create_time字段上添加联合索引,以提高查询效率。
最后,建议定期清理sys_job_log表中的历史数据,以避免表数据过多导致查询效率下降。
以hive的角度检查语法: with cur_dim_comb as (SELECT DISTINCT t.dim_comb ,t.var_sub_class ,t.acc_value FROM gerp.cux_cst_data_alloc_his t WHERE t.top_var_type = '10' AND t.job_ver_id in (SELECT ver.job_ver_id AS p_job_ver_id FROM gerp.cux_cst_dist_jobs_all job INNER JOIN gerp.cux_cst_dist_jobs_vers_all ver ON job.job_id = ver.job_id )) select tp.bd_code --事业部编码 ,tp.bd_name --事业部名称 ,hp.ou_code --OU名称 ,hp.ou_name --OU编码 ,op.main_class_desc --差异大类 ,op.acc_value --科目代码 ,op.acc_desc --科目名称 ,op.dim_comb --区分维度 ,op.begin_amount --期初余额 ,op.accrual_amount --本期发生 ,op.balance_diff_alloc_amount --期末差异结存 ,op.var_sub_class ,op.main_class_value ,op.org_id ,op.period_name ,op.job_ver_id from (select up.* ,q1.* from (SELECT DISTINCT maincl.* ,t.* FROM t inner join (SELECT fv.flex_value ,fv.description FROM fv inner join fs on fv.flex_value_set_id = fs.flex_value_set_id AND fs.flex_value_set_name = 'CUX_CST_VARIANCE_TYPE' AND fv.enabled_flag = 'Y' AND fv.hierarchy_level = '2' AND fv.flex_value LIKE '10%' ) maincl on t.var_main_class = maincl.flex_value inner join cur_dim_comb on cur_dim_comb.var_sub_class = t.var_sub_class and cur_dim_comb.acc_value = t.acc_value WHERE 1 = 1 AND t.top_var_type = '10' AND t.job_ver_id in (SELECT ver.job_ver_id AS p_job_ver_id FROM gerp.cux_cst_dist_jobs_all job INNER JOIN gerp.cux_cst_dist_jobs_vers_all ver ON job.job_id = ver.job_id) ORDER BY maincl.description ,t.acc_value ,cur_dim_comb.dim_comb ) up inner join (SELECT t1.* ,SUM(t1.begin_amount) begin_amount ,SUM(t1.accrual_amount) accrual_amount ,SUM(t1.balance_diff_alloc_amount) balance_diff_alloc_amount FROM gerp.cux_cst_data_alloc_his t1 LEFT JOIN gerp.cux_cst_data_alloc_his t ON t1.top_var_type = '10' AND t1.var_sub_class = t.var_sub_class --p_var_sub_class AND t1.org_id = t.org_id --p_org_id AND t1.period_name = t.period_name --p_period_name AND t1.job_ver_id = t.job_ver_id --p_job_ver_id AND t1.acc_value = t.acc_value --p_acc_value WHERE t1.dim_comb in (select distinct dim_comb from cur_dim_comb) group by t1.org_id,t1.period_name,t1.job_ver_id,t1.var_sub_class,t1.acc_value ) q1 on q1.org_id = up.org_id --p_org_id AND q1.period_name = up.period_name --p_period_name AND q1.job_ver_id = up.job_ver_id --p_job_ver_id AND q1.var_sub_class = up.var_sub_class --p_var_sub_class AND q1.acc_value = up.acc_value --p_acc_value ) op
从 Hive 的角度来检查语法,以下是您提供的 SQL 查询语句:
```
with cur_dim_comb as (
SELECT DISTINCT t.dim_comb, t.var_sub_class, t.acc_value
FROM gerp.cux_cst_data_alloc_his t
WHERE t.top_var_type = '10'
AND t.job_ver_id in (
SELECT ver.job_ver_id AS p_job_ver_id
FROM gerp.cux_cst_dist_jobs_all job
INNER JOIN gerp.cux_cst_dist_jobs_vers_all ver
ON job.job_id = ver.job_id
)
)
select
tp.bd_code, --事业部编码
tp.bd_name, --事业部名称
hp.ou_code, --OU名称
hp.ou_name, --OU编码
op.main_class_desc, --差异大类
op.acc_value, --科目代码
op.acc_desc, --科目名称
op.dim_comb, --区分维度
op.begin_amount, --期初余额
op.accrual_amount, --本期发生
op.balance_diff_alloc_amount, --期末差异结存
op.var_sub_class,
op.main_class_value,
op.org_id,
op.period_name,
op.job_ver_id
from (
select up.*, q1.*
from (
SELECT DISTINCT
maincl.*,
t.*
FROM
t
inner join (
SELECT
fv.flex_value,
fv.description
FROM
fv
inner join fs
on fv.flex_value_set_id = fs.flex_value_set_id
AND fs.flex_value_set_name = 'CUX_CST_VARIANCE_TYPE'
AND fv.enabled_flag = 'Y'
AND fv.hierarchy_level = '2'
AND fv.flex_value LIKE '10%'
) maincl
on t.var_main_class = maincl.flex_value
inner join cur_dim_comb
on cur_dim_comb.var_sub_class = t.var_sub_class
and cur_dim_comb.acc_value = t.acc_value
WHERE
1 = 1
AND t.top_var_type = '10'
AND t.job_ver_id in (
SELECT ver.job_ver_id AS p_job_ver_id
FROM gerp.cux_cst_dist_jobs_all job
INNER JOIN gerp.cux_cst_dist_jobs_vers_all ver
ON job.job_id = ver.job_id
)
ORDER BY
maincl.description,
t.acc_value,
cur_dim_comb.dim_comb
) up
inner join (
SELECT
t1.*,
SUM(t1.begin_amount) begin_amount,
SUM(t1.accrual_amount) accrual_amount,
SUM(t1.balance_diff_alloc_amount) balance_diff_alloc_amount
FROM
gerp.cux_cst_data_alloc_his t1
LEFT JOIN gerp.cux_cst_data_alloc_his t
ON t1.top_var_type = '10'
AND t1.var_sub_class = t.var_sub_class --p_var_sub_class
AND t1.org_id = t.org_id --p_org_id
AND t1.period_name = t.period_name --p_period_name
AND t1.job_ver_id = t.job_ver_id --p_job_ver_id
AND t1.acc_value = t.acc_value --p_acc_value
WHERE
t1.dim_comb in (select distinct dim_comb from cur_dim_comb)
group by
t1.org_id,
t1.period_name,
t1.job_ver_id,
t1.var_sub_class,
t1.acc_value
) q1
on q1.org_id = up.org_id --p_org_id
AND q1.period_name = up.period_name --p_period_name
AND q1.job_ver_id = up.job_ver_id --p_job_ver_id
AND q1.var_sub_class = up.var_sub_class --p_var_sub_class
AND q1.acc_value = up.acc_value --p_acc_value
) op
```
从语法角度来看,该查询语句是有效的。但是,如果您想要确保语句完全符合您的预期,请先测试该语句在您的环境中的执行结果。
相关推荐
![csv](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)