Jump to content

SQL Query Count


Jorge92

Recommended Posts

Boa tarde Malta,

Precisava de uma ajudinha, precisava de fazer um count por Result(ANSWERED ou NO ANSWER) e por ID , ou seja no primeiro cenário o ID1 é ANSWERED , no Segundo é fácil..  Presumo que tenha que agrupar ou ID ou por FROM

Rota	From	User	Result	ID	Date
QUEUE7	911111111	200	NO ANSWER	1	06/03/2020 09:55
QUEUE7	911111111	201	ANSWERED	1	06/03/2020 09:51
QUEUE7	911111111	203	NO ANSWER	1	06/03/2020 09:51
					
					
Rota	From	User	Result	ID	Date
QUEUE7	911111111	200	NO ANSWER	2	10/03/2020 09:55
QUEUE7	911111111	201	NO ANSWER	2	10/03/2020 09:51

Obrigado

Link to comment
Share on other sites

9 minutos atrás, Jorge92 disse:

Não. Presumo que tenha que ter alguma validação para que verifique se ID contem ANSWERED conta senão ... 

Viva,

Penso que não estás a procura de "COUNTs", senão terias um resultado deste tipo ou semelhante:
ID     Result    Count
1    NO ANSWER    2
1    ANSWERED    1
2    NO ANSWER    2

Do que percebi, do problema, queres um resultado deste tipo (basta haver 1 "ANSWERED" e todos "NO ANSWER" do "ID" são irrelevantes): 
ID     Result
1    ANSWERED
2    NO ANSWER

correcto?

Link to comment
Share on other sites

14 minutos atrás, antseq disse:

Viva,

Penso que não estás a procura de "COUNTs", senão terias um resultado deste tipo ou semelhante:
ID     Result    Count
1    NO ANSWER    2
1    ANSWERED    1
2    NO ANSWER    2

Do que percebi, do problema, queres um resultado deste tipo (basta haver 1 "ANSWERED" e todos "NO ANSWER" do "ID" são irrelevantes): 
ID     Result
1    ANSWERED
2    NO ANSWER

correcto?

Isso mesmo, o count nao resulta 

Link to comment
Share on other sites

11 minutos atrás, Jorge92 disse:

 

Isso mesmo, o count nao resulta 

Experimente este comando:

SELECT DISTINCT [ID], [Result] FROM @TABELA WHERE [Result]='ANSWERED'
UNION
SELECT DISTINCT [ID], [Result] FROM @TABELA WHERE [ID] NOT IN (
	SELECT DISTINCT [ID] FROM @TABELA WHERE [Result]='ANSWERED'
	)
ORDER BY [ID], [Result]

* nota: a sua tabela tem nomes dos campos "From, Date", etc; com "palavras reservadas" do SQL (não é nada recomendável).

cps,

Link to comment
Share on other sites

2 horas atrás, antseq disse:

Experimente este comando:


SELECT DISTINCT [ID], [Result] FROM @TABELA WHERE [Result]='ANSWERED'
UNION
SELECT DISTINCT [ID], [Result] FROM @TABELA WHERE [ID] NOT IN (
	SELECT DISTINCT [ID] FROM @TABELA WHERE [Result]='ANSWERED'
	)
ORDER BY [ID], [Result]

* nota: a sua tabela tem nomes dos campos "From, Date", etc; com "palavras reservadas" do SQL (não é nada recomendável).

cps,

Antes de mais obrigado pelas notas, irei alterar os nomes dos campos. 

Quando ao código efetivamente resulta mas não consigo uma contagem por ANSWERED e NO ANSWERED que é o pretendido. 

Link to comment
Share on other sites

18 horas atrás, Jorge92 disse:

Antes de mais obrigado pelas notas, irei alterar os nomes dos campos. 

Quando ao código efetivamente resulta mas não consigo uma contagem por ANSWERED e NO ANSWERED que é o pretendido. 

Considere a Query que enviei como SubQuery e faça um COUNT da mesma:

SELECT [Result], COUNT(*) AS Contagem
FROM (
	SELECT DISTINCT [ID], [Result] FROM @TABELA WHERE [Result]='ANSWERED'
	UNION
	SELECT DISTINCT [ID], [Result] FROM @TABELA WHERE [ID] NOT IN (
		SELECT DISTINCT [ID] FROM @TABELA WHERE [Result]='ANSWERED'
		)
) AS Sub
GROUP BY [Result]

cps,

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.