Agregacja Danych COUNT(DISTINCT)

Agregacja Danych COUNT(DISTINCT)
BL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 95
0

Witam.

Może takie banalne pytanie. Stworzyłem zapytanie które ma policzyć mi w bazie odbiorców którzy są nowi(pierwsza faktura w 2017 r) i pogrupować to po dziale sprzedaży.

Czy to pytanie jest dobre ? Bo niestety zapytanie kręci ale nie pokazuje żadnych danych.

Kopiuj
SELECT "dzial sprzedazy" ,COUNT(DISTINCT ODBIORCA)
FROM mojabaza
GROUP BY "dzial sprzedazy"
HAVING ( MIN(( "data utworzenia faktury" )) >= '2017-01-01' )
;

Proszę o pomoc.

Dzięki

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3891
0

A dlaczego w Having? Nie prościej:

Kopiuj
SELECT "dzial sprzedazy" ,COUNT(DISTINCT ODBIORCA)
FROM mojabaza
where "data utworzenia faktury" >= '2017-01-01'
GROUP BY "dzial sprzedazy"
  • Rejestracja: dni
  • Ostatnio: dni
0

Having to operacja po wykonaniu grupowania, w nowo utworzonej bazie z tego co widzę masz tylko nazwę działu i ilość, to nie ma prawa działać.

BL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 95
0

Operacja nie działa bo nie jest błąd agregacji danych.

mojabaza jest bazą wszystkich fakktur (dokładnie jest to widok) który zawiera wszystkie nr faktur i składowe czyli Kod Odbiorcy dział sprzedazy Materiały jakie były sprzedawane i inne detale(obrót, koszt)

Chciałbym sprawdzić na początku odbiorców którzy wykonali swoją PIERWSZĄ fakturę w 2018 r i wtedy tych wszystkich odbiorów pogrupować po działach sprzedaży.

Kopiuj
Select DISTINCT mojabaza."dzial sprzedazy",  COUNT( mojabaza.ODBIORCA)
FROM mojabaza
GROUP BY mojabaza..ODBIORCA, mojabaza.."dzial sprzedazy"
HAVING (MIN (mojabaza.."data utworzenia faktury") >= TO_DATE('2018-01-01','YYYY-MM-DD'));

To zapytanie niestety źle agreguje dane do działu sprzedaży bo je powiela(dział sprzedaży występuje kilka razy) i jest jakiś problem z prawidłowym policzeniem bo liczy nie zlicza mi klientów wg HAVING czyli pierwsza faktura tylko zlicza wszystkich aktywnych klientów w 2018r.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.