sql QUERY计数采取的行动 [英] sql QUERY count action taken filed

查看:74
本文介绍了sql QUERY计数采取的行动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的桌子结构: -





CANDIDATE_APPLIED_JOB_ID varchar(10)PRIMARY KEY,

USER_CODE varchar(10),

JOB_POST_CODE VARCHAR(10),

ACTION_TAKEN VARCHAR(50),

IP_ADDRESS varchar(25)



在此表ACTION_TAKEN字段中包含此格式的数据:





 CANDIDATE_APPLIED_ USER_CODE ACTION_TAKEN 
CAJ0000001 JD1111116 SELECTED
CAJ0000002 JPC0000004 ONHOLD
CAJ0000005 JPC0000004 ONHOLD
CAJ0000006 JPC0000004 ONHOLD
CAJ0000007 JD1111116 REJECTED
CAJ0000008 JD1111116 ONHOLD
CAJ0000009 JD1111116 REJECTED
CAJ0000010 JD1111116 REJECTED
CAJ0000011 JD1111116 ONHOLD
CAJ0000012 JD1111116 REJECTED
CAJ0000013 JD1111116 SELECTED
CAJ0000014 JD1111116 REJECTED
CAJ0000015 JD1111116 SELECTED





我想要sql查询计算ACTION_TAKEN并在此格式中返回te $>


精选ONHOLD拒绝
3 5 5





PLease帮帮我





提前谢谢



[edit]已添加代码块 - OriginalGriff [/ edit]

解决方案

您好试试这个。希望它有所帮助。



 声明  @ CandiDate   table 
CANDIDATE_APPLIED_JOB_ID varchar 10 PRIMARY KEY
USER_CODE varchar 10 ),
JOB_POST_CODE VARCHAR 10 ),
ACTION_TAKEN VARCHAR 50 ),
IP_ADDRESS varchar 25

插入 进入 @ CandiDate ( CANDIDATE_APPLIED_JOB_ID,USER_CODE,ACTION_TAKEN)' CAJ0000001'' JD1111116'' SELECTED'
insert @ CandiDate (CANDIDATE_APPLIED_JOB_ID,USER_CODE,ACTION_TAKEN )' CAJ0000002',< span class =code-string>' JPC0000004'' ONHOLD'
insert 进入 @ CandiDate (CANDIDATE_APPLIED_JOB_ID,USER_CODE,ACTION_TAKEN)' CAJ0000005'' JPC0000004'' ONHOLD'
insert 进入 @ CandiDate (CANDIDATE_APPLIED_JOB_ID,USER_CODE,ACTION_TAKEN)' CAJ0000006'' JPC0000004'' ONHOLD'
insert 进入 @ CandiDate (CANDIDATE_APPLIED_JOB_ID,USER_CODE,ACTION_TAKEN)' CAJ0000007'' JD1111116'' REJECTED'
insert into @ CandiDate (CANDIDATE_APPLIED_JOB_ID,USER_CODE,ACTION_TAKEN) values ' CAJ0000008'' JD1111116'' ONHOLD'
插入 进入 @ CandiDate (CANDIDATE_APPLIED_JOB_ID,USER_CODE,ACTION_TAKEN)' CAJ0000009' ' JD1111116'' REJECTED'
插入 进入 @ CandiDate (CANDIDATE_APPLIED_JOB_ID,USER_CODE,ACTION_TAKEN)' CAJ0000010' ' JD1111116'' REJECTED'
insert into @ CandiDate (CANDIDATE_APPLIED_JOB_ID,USER_CODE,ACTION_TAKEN)' CAJ0000011'' JD1111116 '' ONHOLD'
insert int o @ CandiDate (CANDIDATE_APPLIED_JOB_ID,USER_CODE,ACTION_TAKEN)' CAJ0000012'' JD1111116'' REJECTED'
插入 进入 @ CandiDate (CANDIDATE_APPLIED_JOB_ID,USER_CODE,ACTION_TAKEN)' CAJ0000013'' JD1111116'' 已选择'
插入 进入 @候选(CANDIDATE_APPLIED _JOB_ID,USER_CODE,ACTION_TAKEN)' CAJ0000014'' JD1111116'' REJECTED'
insert into @ CandiDate (CANDIDATE_APPLIED_JOB_ID,USER_CODE,ACTION_TAKEN)' CAJ0000015'' JD1111116' ' SELECTED'

SELECT sum([SELECTED]) as SELECTED,sum([ONHOLD]) as 保留,总和([REJECTED])拒绝
FROM
SELECT CANDIDATE_APPLIED_JOB_ID,USER_CODE,ACTION_TAKEN
< span class =code-keyword> FROM
@ CandiDate )p
PIVOT

COUNT(CANDIDATE_APPLIED_JOB_ID)
FOR ACTION_TAKEN IN
([SELECTED],[ONHOLD],[REJECTED ])
AS pvt


另一种选择可能是



  SELECT  COUNT( CASE  ACTIONTAKE  WHEN  '  SELECTED' < span class =code-keyword> THEN   1   ELSE   NULL   END )SE LECTED,
COUNT( CASE ACTIONTAKE WHEN ' ONHOLD' 那么 1 ELSE NULL END )ONHOLD,
COUNT( CASE ACTIONTAKE WHEN ' REJECTED' 那么 1 ELSE NULL END )REJECTED
FROM CANDIDATE_APPLIED_JOB
GROUP BY ACTIONTAKE


This is my table structure:-


CANDIDATE_APPLIED_JOB_ID varchar(10) PRIMARY KEY,
USER_CODE varchar(10),
JOB_POST_CODE VARCHAR(10),
ACTION_TAKEN VARCHAR(50),
IP_ADDRESS varchar(25)

In this table ACTION_TAKEN field have data in this formate:


CANDIDATE_APPLIED_	USER_CODE    ACTION_TAKEN	
CAJ0000001		JD1111116	SELECTED
CAJ0000002		JPC0000004	ONHOLD
CAJ0000005		JPC0000004	ONHOLD
CAJ0000006		JPC0000004	ONHOLD
CAJ0000007		JD1111116	REJECTED
CAJ0000008		JD1111116	ONHOLD
CAJ0000009		JD1111116	REJECTED
CAJ0000010		JD1111116	REJECTED
CAJ0000011		JD1111116	ONHOLD
CAJ0000012		JD1111116	REJECTED
CAJ0000013		JD1111116	SELECTED
CAJ0000014		JD1111116	REJECTED
CAJ0000015		JD1111116	SELECTED



I want to sql query which count the ACTION_TAKEN and give return in this formate

SELECTED     ONHOLD        REJECTED
  3            5             5



PLease help me


Thank you in advance

[edit] Code block added - OriginalGriff [/edit]

解决方案

Hello try this. Hope it helps.

Declare @CandiDate table(
CANDIDATE_APPLIED_JOB_ID varchar(10) PRIMARY KEY,
USER_CODE varchar(10),
JOB_POST_CODE VARCHAR(10),
ACTION_TAKEN VARCHAR(50),
IP_ADDRESS varchar(25)
)
insert into @CandiDate(CANDIDATE_APPLIED_JOB_ID,	USER_CODE    ,ACTION_TAKEN) values('CAJ0000001','JD1111116','SELECTED')
insert into @CandiDate(CANDIDATE_APPLIED_JOB_ID,	USER_CODE    ,ACTION_TAKEN) values('CAJ0000002','JPC0000004','ONHOLD')
insert into @CandiDate(CANDIDATE_APPLIED_JOB_ID,	USER_CODE    ,ACTION_TAKEN) values('CAJ0000005','JPC0000004','ONHOLD')
insert into @CandiDate(CANDIDATE_APPLIED_JOB_ID,	USER_CODE    ,ACTION_TAKEN) values('CAJ0000006','JPC0000004','ONHOLD')
insert into @CandiDate(CANDIDATE_APPLIED_JOB_ID,	USER_CODE    ,ACTION_TAKEN) values('CAJ0000007','JD1111116','REJECTED')
insert into @CandiDate(CANDIDATE_APPLIED_JOB_ID,	USER_CODE    ,ACTION_TAKEN) values('CAJ0000008','JD1111116','ONHOLD')
insert into @CandiDate(CANDIDATE_APPLIED_JOB_ID,	USER_CODE    ,ACTION_TAKEN) values('CAJ0000009','JD1111116','REJECTED')
insert into @CandiDate(CANDIDATE_APPLIED_JOB_ID,	USER_CODE    ,ACTION_TAKEN) values('CAJ0000010','JD1111116','REJECTED')
insert into @CandiDate(CANDIDATE_APPLIED_JOB_ID,	USER_CODE    ,ACTION_TAKEN) values('CAJ0000011','JD1111116','ONHOLD')
insert into @CandiDate(CANDIDATE_APPLIED_JOB_ID,	USER_CODE    ,ACTION_TAKEN) values('CAJ0000012','JD1111116','REJECTED')
insert into @CandiDate(CANDIDATE_APPLIED_JOB_ID,	USER_CODE    ,ACTION_TAKEN) values('CAJ0000013','JD1111116','SELECTED')
insert into @CandiDate(CANDIDATE_APPLIED_JOB_ID,	USER_CODE    ,ACTION_TAKEN) values('CAJ0000014','JD1111116','REJECTED')
insert into @CandiDate(CANDIDATE_APPLIED_JOB_ID,	USER_CODE    ,ACTION_TAKEN) values('CAJ0000015','JD1111116','SELECTED')

SELECT sum([SELECTED]) as SELECTED,sum([ONHOLD]) as Onhold,sum([REJECTED]) as Rejected
FROM 
(SELECT CANDIDATE_APPLIED_JOB_ID,	USER_CODE    ,ACTION_TAKEN
FROM @CandiDate ) p
PIVOT
(
COUNT (CANDIDATE_APPLIED_JOB_ID)
FOR ACTION_TAKEN IN
( [SELECTED],[ONHOLD],[REJECTED])
) AS pvt


Another alternative could be as

SELECT  COUNT(CASE ACTIONTAKE WHEN 'SELECTED' THEN 1 ELSE NULL END) SELECTED,
    COUNT(CASE ACTIONTAKE WHEN 'ONHOLD' THEN 1 ELSE NULL END) ONHOLD,
    COUNT(CASE ACTIONTAKE WHEN 'REJECTED' THEN 1 ELSE NULL END) REJECTED
FROM    CANDIDATE_APPLIED_JOB
GROUP BY ACTIONTAKE


这篇关于sql QUERY计数采取的行动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆