*️⃣ Neste exemplo quero contar quantas vezes o nome(nome_fantasia) aparece na consulta, dentro de um determinado período com BETWEEN
SELECT NOME_FANTASIA, COUNT(*) AS total
FROM consumidorGov
WHERE DATA_FINALIZACAO BETWEEN '2023-07-01' AND '2023-09-30'
GROUP BY NOME_FANTASIA
HAVING COUNT(*) > 1;
O GROUP BY faz o agrupamento dos resultados pela coluna NOME_FANTASIA, ou seja para cada nome, o COUNT (*) irá contar quantas vezes esse nome aparece na tabela dentro do intervalo de datas especificado com o BEYWEEN.
HAVING COUNT (*) >1 é usado para filtrar grupos que foram formados pelo GROUP BY. Neste exemplo, ele mantém apenas os grupos (NOME_FANTASIA) que têm um total maior que 1.
*️⃣ Neste exemplo, preciso que conte quantas vezes o nome do funcionário aparece no resultado da minha consulta:
DECLARE @MES INT, @ANO INT, @DIAS INT, @VR1 DECIMAL, @VR2 DECIMAL, @VL1 DECIMAL, @VL2 DECIMAL, @VLT DECIMAL
SET @MES = 4 SET @ANO = 2023 SET @DIAS = 21
SET @VR1 = 0.00 SET @VR2 = 0.00
SET @VL1 = 0.00 SET @VL2 = 0.00 SET @VLT = 0.00
;WITH CTE_Result AS (
SELECT DISTINCT
FROM
WHERE
)
SELECT *,
(SELECT COUNT(*) FROM CTE_Result AS CTE_COUNT WHERE CTE_COUNT.NOME_FUNCIONARIO = CTE_Result.NOME_FUNCIONARIO) AS NOME_COUNT
FROM CTE_Result
ORDER BY CHAPA DESC