Jump to content
Jorge92

SQL Query Count

Recommended Posts

Jorge92

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

Share this post


Link to post
Share on other sites
M6

Se bem percebi o que pretendes, basta fazeres um count pelo ID com um group by, também pelo ID.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
Jorge92

Pois, mas tem de me devolver no primeiro exemplo a chamada como Answererd, e no segundo exemplo como No Answer

Share this post


Link to post
Share on other sites
M6

Não resolves com um order by?


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
Jorge92

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

Share this post


Link to post
Share on other sites
antseq
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?

Share this post


Link to post
Share on other sites
Jorge92

 

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 

Share this post


Link to post
Share on other sites
antseq
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,

Share this post


Link to post
Share on other sites
Jorge92
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. 

Share this post


Link to post
Share on other sites
antseq
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,

Share this post


Link to post
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.