Tome o seguinte exemplo de código:
SELECT MaritalStatus,
COUNT(*) AS CountResult
COUNT(*) OVER() AS CountOverResult
FROM (schema).(table)
GROUP BY Marital Status
COUNT(*)
Retorna todas as linhas ignorando nulos certo?
O que COUNT(*) OVER()
faz?
Esta questão veio em um exame prático, então eu não tinha os dados para consultar. Eu tenho usado Adventure Works e este site http://www.sqlishard.com/Exercise para praticar.
Se eu inserir uma consulta como
SELECT ID, COUNT(*) AS 'COUNT(*)' , COUNT(*) OVER() AS 'COUNT(*) OVER()'
FROM Customers
GROUP BY ID
no site de prática, recebo 3794 linhas retornadas com a Count(*)
coluna cheia de unidades e a Count(*) Over()
coluna cheia do número total de linhas. Não entendi esse padrão (desculpe) então vim aqui.