Olá,
eu consegui chegar na resposta certa com a consulta:
SELECT CPF,COUNT(NUMERO) FROM NOTAS_FISCAIS WHERE TO_CHAR(DATA_VENDA, 'YYYY') = 2016 GROUP BY CPF HAVING COUNT(NUMERO) > 2000;
Porém, tenho2 dúvidas:
1ª Ao utilizar o COUNT(NUMERO) ou COUNT(*), o resultado é o mesmo, isso ocorre porque a contagem de ocorrência do campo NÚMERO é o mesmo da contagem de linhas da tabela? Vcs podem me explicar isso melhor, quando usar * ou o nome do registro?
2ª Antes de chegar na resposta final, construi a consulta abaixo e vi que o resultado não consta a contagem de compras com valores menores que 6000. Como no exercício pediu compras maiores que 2000 e no ano de 2016, após a aplicar essa condição o resultado foi de 3 clientes. Nesse caso, com a query genérica abaixo não deveria a contagem de todas compras do clientes incluindo as de 6000 e 2000?
SELECT CPF, COUNT(*) FROM NOTAS_FISCAIS GROUP BY CPF;
Resultado da consulta: CPF COUNT(*) 8502682733 6260 3623344710 6357 7771579779 6187 50534475787 6367 1471156710 6317 5576228758 6389 19290992743 6247 492472718 6237 5648641702 6384 5840119709 6281 9283760794 6310 2600586709 6231 95939180787 7 94387575700 6296 8719655770 6090